547 lines
28 KiB
XML
547 lines
28 KiB
XML
<UserControl
|
||
x:Class="CapMachine.Shared.Controls.MeterConfig"
|
||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||
xmlns:local="clr-namespace:CapMachine.Shared.Controls"
|
||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||
x:Name="MeterConfigInstance"
|
||
d:DesignHeight="400"
|
||
d:DesignWidth="400"
|
||
mc:Ignorable="d">
|
||
<UserControl.Resources>
|
||
<local:BoolNgConvert x:Key="BoolNgConverter" />
|
||
<local:SecToStrConvert x:Key="SecToStrConverter" />
|
||
<Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}">
|
||
<Setter Property="FontSize" Value="24" />
|
||
<Setter Property="Width" Value="218" />
|
||
</Style>
|
||
<Style x:Key="myHeaderStyle1" TargetType="{x:Type GridViewColumnHeader}">
|
||
<Setter Property="FontSize" Value="16" />
|
||
</Style>
|
||
</UserControl.Resources>
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="30" />
|
||
<RowDefinition />
|
||
</Grid.RowDefinitions>
|
||
|
||
<DockPanel Background="White">
|
||
<Border Background="#FF03A9F4">
|
||
<TextBlock
|
||
Margin="0,0,5,0"
|
||
VerticalAlignment="Center"
|
||
DockPanel.Dock="Right"
|
||
FontSize="18"
|
||
Foreground="White"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=MeterName}"
|
||
TextAlignment="Right" />
|
||
</Border>
|
||
|
||
|
||
</DockPanel>
|
||
<TabControl
|
||
x:Name="MainTabControl"
|
||
Grid.Row="1"
|
||
SelectedIndex="{Binding ElementName=MeterConfigInstance, Path=ConstSlopSelectedIndex}">
|
||
<TabControl.Style>
|
||
<Style BasedOn="{StaticResource MaterialDesignFilledTabControl}" TargetType="TabControl">
|
||
<!--<Style.Triggers>
|
||
<DataTrigger Binding="{Binding IsChecked, ElementName=TBSwitchConstSlop}" Value="True">
|
||
<Setter Property="SelectedIndex" Value="1" />
|
||
</DataTrigger>
|
||
<DataTrigger Binding="{Binding IsChecked, ElementName=TBSwitchConstSlop}" Value="False">
|
||
<Setter Property="SelectedIndex" Value="0" />
|
||
</DataTrigger>
|
||
</Style.Triggers>-->
|
||
</Style>
|
||
</TabControl.Style>
|
||
<i:Interaction.Triggers>
|
||
<i:EventTrigger EventName="SelectionChanged">
|
||
<i:InvokeCommandAction Command="{Binding ElementName=MeterConfigInstance, Path=SwitchConstSlopCommand}" CommandParameter="{Binding ElementName=MainTabControl, Path=SelectedIndex}" />
|
||
</i:EventTrigger>
|
||
</i:Interaction.Triggers>
|
||
<!-- IsEnabled="{Binding IsChecked, ElementName=TBSwitchConstSlop, Converter={StaticResource BoolNgConverter}}" -->
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<!--<TextBlock
|
||
Margin="5,0,0,0"
|
||
VerticalAlignment="Center"
|
||
FontFamily=".../Assets/Fonts/#iconfont"
|
||
FontSize="20"
|
||
Foreground="White"
|
||
Text="" />-->
|
||
<TextBlock
|
||
Margin="2,0"
|
||
VerticalAlignment="Center"
|
||
FontSize="20"
|
||
Foreground="White"
|
||
Text="常值" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="80" />
|
||
<RowDefinition Height="40" />
|
||
<RowDefinition Height="40" />
|
||
<RowDefinition />
|
||
</Grid.RowDefinitions>
|
||
|
||
<StackPanel Margin="10" Orientation="Vertical">
|
||
<TextBlock HorizontalAlignment="Center" FontSize="16">常值数据</TextBlock>
|
||
<TextBox
|
||
Width="200"
|
||
HorizontalContentAlignment="Center"
|
||
FontSize="20"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=ConstantValue}" />
|
||
</StackPanel>
|
||
<StackPanel Grid.Row="1" VerticalAlignment="Center">
|
||
<Button
|
||
Width="80"
|
||
Margin="0,0,20,0"
|
||
Command="{Binding ElementName=MeterConfigInstance, Path=ConstantSaveCommand}"
|
||
Content="确定"
|
||
Foreground="White" />
|
||
</StackPanel>
|
||
<StackPanel Grid.Row="2" VerticalAlignment="Center">
|
||
<TextBlock
|
||
HorizontalAlignment="Center"
|
||
FontSize="16"
|
||
Foreground="Gray"
|
||
Text="持续时间请参照速度时间" />
|
||
</StackPanel>
|
||
</Grid>
|
||
</TabItem>
|
||
<!-- IsEnabled="{Binding IsChecked, ElementName=TBSwitchConstSlop}" -->
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<!--<TextBlock
|
||
Margin="5,0,0,0"
|
||
VerticalAlignment="Center"
|
||
FontFamily=".../Assets/Fonts/#iconfont"
|
||
FontSize="20"
|
||
Foreground="White"
|
||
Text="" />-->
|
||
<TextBlock
|
||
Margin="2,0"
|
||
VerticalAlignment="Center"
|
||
FontSize="20"
|
||
Foreground="White"
|
||
Text="斜率" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="55" />
|
||
<RowDefinition Height="40" />
|
||
<RowDefinition />
|
||
</Grid.RowDefinitions>
|
||
<Grid Grid.Row="0" Margin="0,3">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="0.8*" />
|
||
<ColumnDefinition />
|
||
<ColumnDefinition />
|
||
<ColumnDefinition Width="1.5*" />
|
||
<ColumnDefinition Width="0.8*" />
|
||
<ColumnDefinition Width="0.8*" />
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<!--<StackPanel Margin="1,10,0,0">
|
||
<TextBox
|
||
VerticalAlignment="Top"
|
||
materialDesign:HintAssist.Hint="序号"
|
||
FontSize="13"
|
||
FontWeight="Bold"
|
||
Style="{StaticResource MaterialDesignOutlinedTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.StepNo}"
|
||
TextWrapping="NoWrap"
|
||
VerticalScrollBarVisibility="Disabled">
|
||
<TextBox.ToolTip>
|
||
<TextBlock
|
||
FontSize="14"
|
||
FontWeight="Bold"
|
||
Text="新增时自动填充序号;可手动修改序号" />
|
||
</TextBox.ToolTip>
|
||
</TextBox>
|
||
</StackPanel>
|
||
<StackPanel Grid.Column="1" Margin="1,10,0,0">
|
||
<TextBox
|
||
VerticalAlignment="Top"
|
||
materialDesign:HintAssist.Hint="起始值"
|
||
FontSize="13"
|
||
FontWeight="Bold"
|
||
Style="{StaticResource MaterialDesignOutlinedTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.StartValue}"
|
||
TextWrapping="NoWrap"
|
||
VerticalScrollBarVisibility="Disabled">
|
||
<TextBox.ToolTip>
|
||
<TextBlock
|
||
FontSize="14"
|
||
FontWeight="Bold"
|
||
Text="起始值" />
|
||
</TextBox.ToolTip>
|
||
</TextBox>
|
||
</StackPanel>
|
||
<StackPanel Grid.Column="2" Margin="1,10,0,0">
|
||
<TextBox
|
||
VerticalAlignment="Top"
|
||
materialDesign:HintAssist.Hint="结束值"
|
||
FontSize="13"
|
||
FontWeight="Bold"
|
||
Style="{StaticResource MaterialDesignOutlinedTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.EndValue}"
|
||
TextWrapping="NoWrap"
|
||
VerticalScrollBarVisibility="Disabled">
|
||
<TextBox.ToolTip>
|
||
<TextBlock
|
||
FontSize="14"
|
||
FontWeight="Bold"
|
||
Text="结束值" />
|
||
</TextBox.ToolTip>
|
||
</TextBox>
|
||
</StackPanel>
|
||
<StackPanel Grid.Column="3" Margin="1,10,0,0">
|
||
<TextBox
|
||
VerticalAlignment="Top"
|
||
materialDesign:HintAssist.Hint="持续时间"
|
||
FontSize="13"
|
||
FontWeight="Bold"
|
||
IsEnabled="True"
|
||
Style="{StaticResource MaterialDesignOutlinedTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.KeepTime, Converter={StaticResource SecToStrConverter}}"
|
||
TextWrapping="NoWrap"
|
||
VerticalScrollBarVisibility="Disabled">
|
||
<TextBox.ToolTip>
|
||
<TextBlock
|
||
FontSize="14"
|
||
FontWeight="Bold"
|
||
Text="维持时间" />
|
||
</TextBox.ToolTip>
|
||
</TextBox>
|
||
</StackPanel>-->
|
||
|
||
<StackPanel Margin="3,5,3,0">
|
||
<TextBox
|
||
VerticalAlignment="Center"
|
||
materialDesign:HintAssist.Hint="序号"
|
||
FontSize="16"
|
||
FontWeight="Bold"
|
||
Style="{StaticResource MaterialDesignFloatingHintTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.StepNo}"
|
||
TextWrapping="NoWrap"
|
||
ToolTip="新增时自动填充序号;可手动修改序号"
|
||
VerticalScrollBarVisibility="Disabled" />
|
||
</StackPanel>
|
||
<StackPanel Grid.Column="1" Margin="2,5,3,0">
|
||
<TextBox
|
||
VerticalAlignment="Center"
|
||
materialDesign:HintAssist.Hint="起始值"
|
||
FontSize="16"
|
||
FontWeight="Bold"
|
||
Style="{StaticResource MaterialDesignFloatingHintTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.StartValue}"
|
||
TextWrapping="NoWrap"
|
||
ToolTip="起始值"
|
||
VerticalScrollBarVisibility="Disabled" />
|
||
</StackPanel>
|
||
<StackPanel Grid.Column="2" Margin="2,5,3,0">
|
||
<TextBox
|
||
VerticalAlignment="Center"
|
||
materialDesign:HintAssist.Hint="结束值"
|
||
FontSize="16"
|
||
FontWeight="Bold"
|
||
Style="{StaticResource MaterialDesignFloatingHintTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.EndValue}"
|
||
TextWrapping="NoWrap"
|
||
ToolTip="结束值"
|
||
VerticalScrollBarVisibility="Disabled" />
|
||
|
||
</StackPanel>
|
||
<StackPanel Grid.Column="3" Margin="2,5,3,0">
|
||
<TextBox
|
||
VerticalAlignment="Center"
|
||
materialDesign:HintAssist.Hint="持续时间"
|
||
FontSize="16"
|
||
FontWeight="Bold"
|
||
Style="{StaticResource MaterialDesignFloatingHintTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.KeepTime, Converter={StaticResource SecToStrConverter}}"
|
||
TextWrapping="NoWrap"
|
||
ToolTip="持续时间"
|
||
VerticalScrollBarVisibility="Disabled" />
|
||
</StackPanel>
|
||
|
||
<StackPanel Grid.Column="4" Margin="2,5,3,0">
|
||
<TextBox
|
||
VerticalAlignment="Center"
|
||
materialDesign:HintAssist.Hint="PID"
|
||
FontSize="16"
|
||
FontWeight="Bold"
|
||
Style="{StaticResource MaterialDesignFloatingHintTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.PIDNo}"
|
||
TextWrapping="NoWrap"
|
||
ToolTip="PID"
|
||
VerticalScrollBarVisibility="Disabled" />
|
||
</StackPanel>
|
||
<StackPanel Grid.Column="5" Margin="2,5,3,0">
|
||
<TextBox
|
||
VerticalAlignment="Center"
|
||
materialDesign:HintAssist.Hint="限幅"
|
||
FontSize="16"
|
||
FontWeight="Bold"
|
||
Style="{StaticResource MaterialDesignFloatingHintTextBox}"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=SelectedMeter.LimitNo}"
|
||
TextWrapping="NoWrap"
|
||
ToolTip="限幅"
|
||
VerticalScrollBarVisibility="Disabled" />
|
||
</StackPanel>
|
||
|
||
</Grid>
|
||
<StackPanel Grid.Row="1" Orientation="Horizontal">
|
||
<Button
|
||
Margin="2,2"
|
||
Background="IndianRed"
|
||
Command="{Binding ElementName=MeterConfigInstance, Path=AddCommand}"
|
||
Content="增加"
|
||
Foreground="White"
|
||
Style="{StaticResource MaterialDesignRaisedSecondaryLightButton}"
|
||
ToolTip="增加程序步骤内的速度设置" />
|
||
<Button
|
||
Margin="1,2"
|
||
Background="IndianRed"
|
||
Command="{Binding ElementName=MeterConfigInstance, Path=EditCommand}"
|
||
Content="修改"
|
||
Foreground="White"
|
||
Style="{StaticResource MaterialDesignRaisedSecondaryLightButton}"
|
||
ToolTip="修改程序步骤内的速度设置,请先选中" />
|
||
<Button
|
||
Margin="1,2"
|
||
Background="IndianRed"
|
||
Command="{Binding ElementName=MeterConfigInstance, Path=DeleteCommand}"
|
||
Content="删除"
|
||
Foreground="White"
|
||
Style="{StaticResource MaterialDesignRaisedSecondaryLightButton}"
|
||
ToolTip="删除程序步骤内的速度设置,请先选中" />
|
||
<StackPanel Margin="2,2,2,2" Orientation="Vertical">
|
||
<TextBlock
|
||
HorizontalAlignment="Center"
|
||
Foreground="Blue"
|
||
Text="时间" />
|
||
<TextBlock
|
||
VerticalAlignment="Center"
|
||
FontSize="16"
|
||
Foreground="Blue"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=TotalSlopTime, Converter={StaticResource SecToStrConverter}}">
|
||
<TextBlock.Style>
|
||
<Style TargetType="TextBlock">
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding ElementName=MeterConfigInstance, Path=IsTimeOk}" Value="true">
|
||
<Setter Property="Background" Value="LimeGreen" />
|
||
</DataTrigger>
|
||
<DataTrigger Binding="{Binding ElementName=MeterConfigInstance, Path=IsTimeOk}" Value="false">
|
||
<Setter Property="Background" Value="OrangeRed" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TextBlock.Style>
|
||
</TextBlock>
|
||
</StackPanel>
|
||
|
||
<StackPanel Margin="1,2,2,2" Orientation="Vertical">
|
||
<TextBlock
|
||
HorizontalAlignment="Center"
|
||
Foreground="Blue"
|
||
Text="循环" />
|
||
<TextBlock
|
||
VerticalAlignment="Center"
|
||
FontSize="16"
|
||
Foreground="Blue"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=Cycle, StringFormat=0.0}">
|
||
<TextBlock.Style>
|
||
<Style TargetType="TextBlock">
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding ElementName=MeterConfigInstance, Path=IsTimeOk}" Value="true">
|
||
<Setter Property="Background" Value="LimeGreen" />
|
||
</DataTrigger>
|
||
<DataTrigger Binding="{Binding ElementName=MeterConfigInstance, Path=IsTimeOk}" Value="false">
|
||
<Setter Property="Background" Value="OrangeRed" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TextBlock.Style>
|
||
</TextBlock>
|
||
</StackPanel>
|
||
|
||
</StackPanel>
|
||
<Border
|
||
Grid.Row="2"
|
||
Margin="1,0"
|
||
BorderBrush="Black"
|
||
BorderThickness="1">
|
||
<ListView
|
||
x:Name="listviewMeter"
|
||
Foreground="Black"
|
||
ItemsSource="{Binding ElementName=MeterConfigInstance, Path=ListMeter}"
|
||
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
|
||
<i:Interaction.Triggers>
|
||
<i:EventTrigger EventName="SelectionChanged">
|
||
<i:InvokeCommandAction Command="{Binding ElementName=MeterConfigInstance, Path=MeterSelectedChangedCmd}" CommandParameter="{Binding ElementName=listviewMeter, Path=SelectedItem}" />
|
||
</i:EventTrigger>
|
||
</i:Interaction.Triggers>
|
||
<ListView.View>
|
||
|
||
<GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle1}">
|
||
<GridViewColumn
|
||
Width="38"
|
||
DisplayMemberBinding="{Binding StepNo}"
|
||
Header="序号" />
|
||
<GridViewColumn
|
||
Width="58"
|
||
DisplayMemberBinding="{Binding StartValue}"
|
||
Header="起始值" />
|
||
<GridViewColumn
|
||
Width="58"
|
||
DisplayMemberBinding="{Binding EndValue}"
|
||
Header="结束值" />
|
||
<GridViewColumn
|
||
Width="85"
|
||
DisplayMemberBinding="{Binding KeepTime, Converter={StaticResource SecToStrConverter}}"
|
||
Header="维持时间" />
|
||
|
||
<GridViewColumn
|
||
Width="40"
|
||
DisplayMemberBinding="{Binding PIDNo}"
|
||
Header="PID" />
|
||
<GridViewColumn
|
||
Width="42"
|
||
DisplayMemberBinding="{Binding LimitNo}"
|
||
Header="限幅" />
|
||
</GridView>
|
||
|
||
</ListView.View>
|
||
<!-- 设置ListViewItem的背景色,模拟网格效果 -->
|
||
<!--<ListView.ItemContainerStyle>
|
||
<Style TargetType="ListViewItem">
|
||
<Setter Property="Background" Value="LightGray" />
|
||
</Style>
|
||
</ListView.ItemContainerStyle>-->
|
||
</ListView>
|
||
</Border>
|
||
</Grid>
|
||
</TabItem>
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock
|
||
Margin="2,0"
|
||
VerticalAlignment="Center"
|
||
FontSize="20"
|
||
Foreground="White"
|
||
Text="其他" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition />
|
||
<RowDefinition />
|
||
<RowDefinition />
|
||
<RowDefinition />
|
||
<RowDefinition />
|
||
<RowDefinition />
|
||
<RowDefinition />
|
||
</Grid.RowDefinitions>
|
||
|
||
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
|
||
<TextBlock
|
||
Margin="5"
|
||
VerticalAlignment="Center"
|
||
FontSize="22"
|
||
Text="默认参数设置" />
|
||
</StackPanel>
|
||
|
||
<StackPanel
|
||
Grid.Row="1"
|
||
HorizontalAlignment="Center"
|
||
Orientation="Horizontal">
|
||
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
|
||
<TextBlock
|
||
Margin="5"
|
||
VerticalAlignment="Center"
|
||
FontSize="14"
|
||
Text="PIDNo:" />
|
||
<TextBox
|
||
Width="40"
|
||
VerticalAlignment="Center"
|
||
FontSize="16"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=DefaultPIDNo}" />
|
||
</StackPanel>
|
||
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
|
||
<TextBlock
|
||
Margin="5"
|
||
VerticalAlignment="Center"
|
||
FontSize="14"
|
||
Text="限幅No:" />
|
||
<TextBox
|
||
Width="40"
|
||
VerticalAlignment="Center"
|
||
FontSize="16"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=DefaultLimitNo}" />
|
||
</StackPanel>
|
||
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
|
||
<TextBlock
|
||
Margin="0,5"
|
||
VerticalAlignment="Center"
|
||
FontSize="14"
|
||
Text="报警限幅No:" />
|
||
<TextBox
|
||
Width="40"
|
||
VerticalAlignment="Center"
|
||
FontSize="16"
|
||
Text="{Binding ElementName=MeterConfigInstance, Path=DefaultAlarmNo}" />
|
||
</StackPanel>
|
||
</StackPanel>
|
||
|
||
<StackPanel Grid.Row="2" VerticalAlignment="Center">
|
||
<TextBlock
|
||
Margin="5"
|
||
HorizontalAlignment="Center"
|
||
FontSize="14"
|
||
Foreground="Gray"
|
||
Text="默认数据将为常值配置使用"
|
||
TextWrapping="WrapWithOverflow" />
|
||
</StackPanel>
|
||
|
||
|
||
|
||
|
||
|
||
<StackPanel
|
||
Grid.Row="4"
|
||
HorizontalAlignment="Center"
|
||
Cursor=""
|
||
Orientation="Horizontal">
|
||
<Button
|
||
Margin="10,0"
|
||
Command="{Binding ElementName=MeterConfigInstance, Path=ParConfigCommand}"
|
||
CommandParameter="PID"
|
||
Content="PID参数"
|
||
Foreground="White" />
|
||
<Button
|
||
Margin="10,0"
|
||
Command="{Binding ElementName=MeterConfigInstance, Path=ParConfigCommand}"
|
||
CommandParameter="Limit"
|
||
Content="限幅参数"
|
||
Foreground="White" />
|
||
</StackPanel>
|
||
</Grid>
|
||
|
||
</TabItem>
|
||
</TabControl>
|
||
|
||
</Grid>
|
||
</UserControl>
|