Files
CapMachine/CapMachine.Shared/Controls/MeterConfig.xaml
2024-12-18 15:50:21 +08:00

547 lines
28 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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="&#xea1d;" />-->
<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="&#xea1d;" />-->
<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>