优化CNC编辑为2列布局
This commit is contained in:
@@ -21,7 +21,7 @@ namespace XplorePlane.ViewModels
|
|||||||
{
|
{
|
||||||
public class MainViewModel : BindableBase
|
public class MainViewModel : BindableBase
|
||||||
{
|
{
|
||||||
private const double CncEditorHostWidth = 710d;
|
private const double CncEditorHostWidth = 502d;
|
||||||
private readonly ILoggerService _logger;
|
private readonly ILoggerService _logger;
|
||||||
private readonly IContainerProvider _containerProvider;
|
private readonly IContainerProvider _containerProvider;
|
||||||
private readonly IEventAggregator _eventAggregator;
|
private readonly IEventAggregator _eventAggregator;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
xmlns:views="clr-namespace:XplorePlane.Views"
|
xmlns:views="clr-namespace:XplorePlane.Views"
|
||||||
xmlns:vm="clr-namespace:XplorePlane.ViewModels.Cnc"
|
xmlns:vm="clr-namespace:XplorePlane.ViewModels.Cnc"
|
||||||
d:DesignHeight="760"
|
d:DesignHeight="760"
|
||||||
d:DesignWidth="702"
|
d:DesignWidth="502"
|
||||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
|
|
||||||
@@ -23,9 +23,6 @@
|
|||||||
<SolidColorBrush x:Key="PanelBorder" Color="#CDCBCB" />
|
<SolidColorBrush x:Key="PanelBorder" Color="#CDCBCB" />
|
||||||
<SolidColorBrush x:Key="SeparatorBrush" Color="#E5E5E5" />
|
<SolidColorBrush x:Key="SeparatorBrush" Color="#E5E5E5" />
|
||||||
<SolidColorBrush x:Key="HeaderBg" Color="#F7F7F7" />
|
<SolidColorBrush x:Key="HeaderBg" Color="#F7F7F7" />
|
||||||
<SolidColorBrush x:Key="TreeParentBg" Color="#F6F8FB" />
|
|
||||||
<SolidColorBrush x:Key="TreeChildBg" Color="#FBFCFE" />
|
|
||||||
<SolidColorBrush x:Key="TreeAccentBrush" Color="#2E6FA3" />
|
|
||||||
<SolidColorBrush x:Key="TreeChildLineBrush" Color="#C7D4DF" />
|
<SolidColorBrush x:Key="TreeChildLineBrush" Color="#C7D4DF" />
|
||||||
<FontFamily x:Key="UiFont">Microsoft YaHei UI</FontFamily>
|
<FontFamily x:Key="UiFont">Microsoft YaHei UI</FontFamily>
|
||||||
|
|
||||||
@@ -101,8 +98,8 @@
|
|||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
|
|
||||||
<Border
|
<Border
|
||||||
Width="702"
|
Width="502"
|
||||||
MinWidth="702"
|
MinWidth="502"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
Background="{StaticResource PanelBg}"
|
Background="{StaticResource PanelBg}"
|
||||||
BorderBrush="{StaticResource PanelBorder}"
|
BorderBrush="{StaticResource PanelBorder}"
|
||||||
@@ -112,9 +109,7 @@
|
|||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="200" />
|
<ColumnDefinition Width="200" />
|
||||||
<ColumnDefinition Width="1" />
|
<ColumnDefinition Width="1" />
|
||||||
<ColumnDefinition Width="250" />
|
<ColumnDefinition Width="*" />
|
||||||
<ColumnDefinition Width="1" />
|
|
||||||
<ColumnDefinition Width="250" />
|
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Grid Grid.Column="0">
|
<Grid Grid.Column="0">
|
||||||
@@ -248,18 +243,15 @@
|
|||||||
Stretch="Uniform" />
|
Stretch="Uniform" />
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<StackPanel
|
<TextBlock
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
Margin="3,0,0,0"
|
Margin="3,0,0,0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Orientation="Horizontal">
|
FontFamily="{StaticResource UiFont}"
|
||||||
<TextBlock
|
FontSize="11"
|
||||||
VerticalAlignment="Center"
|
FontWeight="SemiBold"
|
||||||
FontFamily="{StaticResource UiFont}"
|
Text="{Binding Name}"
|
||||||
FontSize="11"
|
TextTrimming="CharacterEllipsis" />
|
||||||
FontWeight="SemiBold"
|
|
||||||
Text="{Binding Name}" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<StackPanel
|
<StackPanel
|
||||||
x:Name="NodeActions"
|
x:Name="NodeActions"
|
||||||
@@ -308,225 +300,188 @@
|
|||||||
Width="1"
|
Width="1"
|
||||||
Fill="{StaticResource SeparatorBrush}" />
|
Fill="{StaticResource SeparatorBrush}" />
|
||||||
|
|
||||||
<ScrollViewer Grid.Column="2" VerticalScrollBarVisibility="Auto">
|
<Grid Grid.Column="2">
|
||||||
<Grid Margin="10">
|
<ScrollViewer
|
||||||
<StackPanel Visibility="{Binding SelectedNode, Converter={StaticResource NullToVisibilityConverter}}">
|
x:Name="NodePropertyEditor"
|
||||||
<TextBlock Style="{StaticResource EditorTitle}" Text="节点属性" />
|
VerticalScrollBarVisibility="Auto">
|
||||||
|
<Grid Margin="10">
|
||||||
|
<StackPanel Visibility="{Binding SelectedNode, Converter={StaticResource NullToVisibilityConverter}}">
|
||||||
|
<TextBlock Style="{StaticResource EditorTitle}" Text="节点属性" />
|
||||||
|
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="名称" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="名称" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Name, UpdateSourceTrigger=PropertyChanged}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Name, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
|
||||||
<UniformGrid Margin="0,0,0,8" Columns="2">
|
<UniformGrid Margin="0,0,0,8" Columns="2">
|
||||||
<StackPanel Margin="0,0,6,0">
|
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="索引" />
|
|
||||||
<Label Style="{StaticResource DisplayValueLabel}" Content="{Binding SelectedNode.Index, Mode=OneWay}" />
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel>
|
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="类型" />
|
|
||||||
<Label Style="{StaticResource DisplayValueLabel}" Content="{Binding SelectedNode.NodeTypeDisplay, Mode=OneWay}" />
|
|
||||||
</StackPanel>
|
|
||||||
</UniformGrid>
|
|
||||||
|
|
||||||
<GroupBox
|
|
||||||
Style="{StaticResource CompactGroupBox}"
|
|
||||||
Header="运动参数"
|
|
||||||
Visibility="{Binding SelectedNode.IsMotionSnapshotNode, Converter={StaticResource BoolToVisibilityConverter}}">
|
|
||||||
<UniformGrid Margin="8,8,8,6" Columns="2">
|
|
||||||
<StackPanel Margin="0,0,6,0">
|
<StackPanel Margin="0,0,6,0">
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="XM" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="索引" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.XM, UpdateSourceTrigger=LostFocus}" />
|
<Label Style="{StaticResource DisplayValueLabel}" Content="{Binding SelectedNode.Index, Mode=OneWay}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="YM" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="类型" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.YM, UpdateSourceTrigger=LostFocus}" />
|
<Label Style="{StaticResource DisplayValueLabel}" Content="{Binding SelectedNode.NodeTypeDisplay, Mode=OneWay}" />
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Margin="0,0,6,0">
|
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="ZT" />
|
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.ZT, UpdateSourceTrigger=LostFocus}" />
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel>
|
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="ZD" />
|
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.ZD, UpdateSourceTrigger=LostFocus}" />
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Margin="0,0,6,0">
|
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="TiltD" />
|
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.TiltD, UpdateSourceTrigger=LostFocus}" />
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel>
|
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="Dist" />
|
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Dist, UpdateSourceTrigger=LostFocus}" />
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</UniformGrid>
|
</UniformGrid>
|
||||||
</GroupBox>
|
|
||||||
|
|
||||||
<GroupBox
|
<GroupBox
|
||||||
Style="{StaticResource CompactGroupBox}"
|
Style="{StaticResource CompactGroupBox}"
|
||||||
Header="射线源"
|
Header="运动参数"
|
||||||
Visibility="{Binding SelectedNode.IsReferencePoint, Converter={StaticResource BoolToVisibilityConverter}}">
|
Visibility="{Binding SelectedNode.IsMotionSnapshotNode, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||||
<StackPanel Margin="8,8,8,6">
|
<UniformGrid Margin="8,8,8,6" Columns="2">
|
||||||
<CheckBox Style="{StaticResource EditorCheck}" Content="射线源开启" IsChecked="{Binding SelectedNode.IsRayOn}" />
|
<StackPanel Margin="0,0,6,0">
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="电压 (kV)" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="XM" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Voltage, UpdateSourceTrigger=LostFocus}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.XM, UpdateSourceTrigger=LostFocus}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="电流 (uA)" />
|
</StackPanel>
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Current, UpdateSourceTrigger=LostFocus}" />
|
<StackPanel>
|
||||||
</StackPanel>
|
<TextBlock Style="{StaticResource LabelStyle}" Text="YM" />
|
||||||
</GroupBox>
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.YM, UpdateSourceTrigger=LostFocus}" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Margin="0,0,6,0">
|
||||||
|
<TextBlock Style="{StaticResource LabelStyle}" Text="ZT" />
|
||||||
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.ZT, UpdateSourceTrigger=LostFocus}" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Style="{StaticResource LabelStyle}" Text="ZD" />
|
||||||
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.ZD, UpdateSourceTrigger=LostFocus}" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Margin="0,0,6,0">
|
||||||
|
<TextBlock Style="{StaticResource LabelStyle}" Text="TiltD" />
|
||||||
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.TiltD, UpdateSourceTrigger=LostFocus}" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Style="{StaticResource LabelStyle}" Text="Dist" />
|
||||||
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Dist, UpdateSourceTrigger=LostFocus}" />
|
||||||
|
</StackPanel>
|
||||||
|
</UniformGrid>
|
||||||
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox
|
<GroupBox
|
||||||
Style="{StaticResource CompactGroupBox}"
|
Style="{StaticResource CompactGroupBox}"
|
||||||
Header="保存参数"
|
Header="射线源"
|
||||||
Visibility="{Binding SelectedNode.IsSaveNode, Converter={StaticResource BoolToVisibilityConverter}}">
|
Visibility="{Binding SelectedNode.IsReferencePoint, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||||
<StackPanel Margin="8,8,8,6">
|
<StackPanel Margin="8,8,8,6">
|
||||||
<CheckBox Style="{StaticResource EditorCheck}" Content="射线源开启" IsChecked="{Binding SelectedNode.IsRayOn}" />
|
<CheckBox Style="{StaticResource EditorCheck}" Content="射线源开启" IsChecked="{Binding SelectedNode.IsRayOn}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="电压 (kV)" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="电压 (kV)" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Voltage, UpdateSourceTrigger=LostFocus}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Voltage, UpdateSourceTrigger=LostFocus}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="功率 (W)" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="电流 (uA)" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Power, UpdateSourceTrigger=LostFocus}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Current, UpdateSourceTrigger=LostFocus}" />
|
||||||
<CheckBox Style="{StaticResource EditorCheck}" Content="探测器已连接" IsChecked="{Binding SelectedNode.DetectorConnected}" />
|
</StackPanel>
|
||||||
<CheckBox Style="{StaticResource EditorCheck}" Content="探测器正在采集" IsChecked="{Binding SelectedNode.DetectorAcquiring}" />
|
</GroupBox>
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="帧率" />
|
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.FrameRate, UpdateSourceTrigger=LostFocus}" />
|
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="分辨率" />
|
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Resolution, UpdateSourceTrigger=PropertyChanged}" />
|
|
||||||
</StackPanel>
|
|
||||||
</GroupBox>
|
|
||||||
|
|
||||||
<GroupBox
|
<GroupBox
|
||||||
Style="{StaticResource CompactGroupBox}"
|
Style="{StaticResource CompactGroupBox}"
|
||||||
Header="保存参数"
|
Header="保存参数"
|
||||||
Visibility="{Binding SelectedNode.IsSaveNodeWithImage, Converter={StaticResource BoolToVisibilityConverter}}">
|
Visibility="{Binding SelectedNode.IsSaveNode, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||||
<StackPanel Margin="8,8,8,6">
|
<StackPanel Margin="8,8,8,6">
|
||||||
<CheckBox Style="{StaticResource EditorCheck}" Content="射线源开启" IsChecked="{Binding SelectedNode.IsRayOn}" />
|
<CheckBox Style="{StaticResource EditorCheck}" Content="射线源开启" IsChecked="{Binding SelectedNode.IsRayOn}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="电压 (kV)" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="电压 (kV)" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Voltage, UpdateSourceTrigger=LostFocus}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Voltage, UpdateSourceTrigger=LostFocus}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="功率 (W)" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="功率 (W)" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Power, UpdateSourceTrigger=LostFocus}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Power, UpdateSourceTrigger=LostFocus}" />
|
||||||
<CheckBox Style="{StaticResource EditorCheck}" Content="探测器已连接" IsChecked="{Binding SelectedNode.DetectorConnected}" />
|
<CheckBox Style="{StaticResource EditorCheck}" Content="探测器已连接" IsChecked="{Binding SelectedNode.DetectorConnected}" />
|
||||||
<CheckBox Style="{StaticResource EditorCheck}" Content="探测器正在采集" IsChecked="{Binding SelectedNode.DetectorAcquiring}" />
|
<CheckBox Style="{StaticResource EditorCheck}" Content="探测器正在采集" IsChecked="{Binding SelectedNode.DetectorAcquiring}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="帧率" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="帧率" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.FrameRate, UpdateSourceTrigger=LostFocus}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.FrameRate, UpdateSourceTrigger=LostFocus}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="分辨率" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="分辨率" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Resolution, UpdateSourceTrigger=PropertyChanged}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Resolution, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="图像文件" />
|
</StackPanel>
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.ImageFileName, UpdateSourceTrigger=PropertyChanged}" />
|
</GroupBox>
|
||||||
</StackPanel>
|
|
||||||
</GroupBox>
|
|
||||||
|
|
||||||
<GroupBox
|
<GroupBox
|
||||||
Style="{StaticResource CompactGroupBox}"
|
Style="{StaticResource CompactGroupBox}"
|
||||||
Header="检测模块"
|
Header="保存参数"
|
||||||
Visibility="{Binding SelectedNode.IsInspectionModule, Converter={StaticResource BoolToVisibilityConverter}}">
|
Visibility="{Binding SelectedNode.IsSaveNodeWithImage, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||||
<StackPanel Margin="8,8,8,6">
|
<StackPanel Margin="8,8,8,6">
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="Pipeline 名称" />
|
<CheckBox Style="{StaticResource EditorCheck}" Content="射线源开启" IsChecked="{Binding SelectedNode.IsRayOn}" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.PipelineName, UpdateSourceTrigger=PropertyChanged}" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="电压 (kV)" />
|
||||||
</StackPanel>
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Voltage, UpdateSourceTrigger=LostFocus}" />
|
||||||
</GroupBox>
|
<TextBlock Style="{StaticResource LabelStyle}" Text="功率 (W)" />
|
||||||
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Power, UpdateSourceTrigger=LostFocus}" />
|
||||||
|
<CheckBox Style="{StaticResource EditorCheck}" Content="探测器已连接" IsChecked="{Binding SelectedNode.DetectorConnected}" />
|
||||||
|
<CheckBox Style="{StaticResource EditorCheck}" Content="探测器正在采集" IsChecked="{Binding SelectedNode.DetectorAcquiring}" />
|
||||||
|
<TextBlock Style="{StaticResource LabelStyle}" Text="帧率" />
|
||||||
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.FrameRate, UpdateSourceTrigger=LostFocus}" />
|
||||||
|
<TextBlock Style="{StaticResource LabelStyle}" Text="分辨率" />
|
||||||
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.Resolution, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
<TextBlock Style="{StaticResource LabelStyle}" Text="图像文件" />
|
||||||
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.ImageFileName, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
</StackPanel>
|
||||||
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox
|
<GroupBox
|
||||||
Style="{StaticResource CompactGroupBox}"
|
Style="{StaticResource CompactGroupBox}"
|
||||||
Header="检测标记"
|
Header="检测标记"
|
||||||
Visibility="{Binding SelectedNode.IsInspectionMarker, Converter={StaticResource BoolToVisibilityConverter}}">
|
Visibility="{Binding SelectedNode.IsInspectionMarker, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||||
<StackPanel Margin="8,8,8,6">
|
<StackPanel Margin="8,8,8,6">
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="标记类型" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="标记类型" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.MarkerType, UpdateSourceTrigger=PropertyChanged}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.MarkerType, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="MarkerX" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="MarkerX" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.MarkerX, UpdateSourceTrigger=LostFocus}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.MarkerX, UpdateSourceTrigger=LostFocus}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="MarkerY" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="MarkerY" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.MarkerY, UpdateSourceTrigger=LostFocus}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.MarkerY, UpdateSourceTrigger=LostFocus}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox
|
<GroupBox
|
||||||
Style="{StaticResource CompactGroupBox}"
|
Style="{StaticResource CompactGroupBox}"
|
||||||
Header="消息弹窗"
|
Header="消息弹窗"
|
||||||
Visibility="{Binding SelectedNode.IsPauseDialog, Converter={StaticResource BoolToVisibilityConverter}}">
|
Visibility="{Binding SelectedNode.IsPauseDialog, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||||
<StackPanel Margin="8,8,8,6">
|
<StackPanel Margin="8,8,8,6">
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="标题" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="标题" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.DialogTitle, UpdateSourceTrigger=PropertyChanged}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.DialogTitle, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="消息内容" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="消息内容" />
|
||||||
<TextBox
|
<TextBox
|
||||||
MinHeight="68"
|
MinHeight="68"
|
||||||
Margin="0,0,0,8"
|
Margin="0,0,0,8"
|
||||||
Padding="8,6"
|
Padding="8,6"
|
||||||
AcceptsReturn="True"
|
AcceptsReturn="True"
|
||||||
BorderBrush="#CFCFCF"
|
BorderBrush="#CFCFCF"
|
||||||
BorderThickness="1"
|
BorderThickness="1"
|
||||||
FontFamily="{StaticResource UiFont}"
|
FontFamily="{StaticResource UiFont}"
|
||||||
FontSize="11"
|
FontSize="11"
|
||||||
Text="{Binding SelectedNode.DialogMessage, UpdateSourceTrigger=PropertyChanged}"
|
Text="{Binding SelectedNode.DialogMessage, UpdateSourceTrigger=PropertyChanged}"
|
||||||
TextWrapping="Wrap" />
|
TextWrapping="Wrap" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox
|
<GroupBox
|
||||||
Style="{StaticResource CompactGroupBox}"
|
Style="{StaticResource CompactGroupBox}"
|
||||||
Header="等待参数"
|
Header="等待参数"
|
||||||
Visibility="{Binding SelectedNode.IsWaitDelay, Converter={StaticResource BoolToVisibilityConverter}}">
|
Visibility="{Binding SelectedNode.IsWaitDelay, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||||
<StackPanel Margin="10,8,10,6">
|
<StackPanel Margin="10,8,10,6">
|
||||||
<TextBlock Style="{StaticResource LabelStyle}" Text="延时 (ms)" />
|
<TextBlock Style="{StaticResource LabelStyle}" Text="延时 (ms)" />
|
||||||
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.DelayMilliseconds, UpdateSourceTrigger=LostFocus}" />
|
<TextBox Style="{StaticResource EditorBox}" Text="{Binding SelectedNode.DelayMilliseconds, UpdateSourceTrigger=LostFocus}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<Border
|
|
||||||
Padding="12"
|
|
||||||
Background="#FAFAFA"
|
|
||||||
BorderBrush="#E6E6E6"
|
|
||||||
BorderThickness="1"
|
|
||||||
CornerRadius="6"
|
|
||||||
Visibility="{Binding SelectedNode, Converter={StaticResource NullToVisibilityConverter}, ConverterParameter=Invert}">
|
|
||||||
<StackPanel>
|
|
||||||
<TextBlock
|
|
||||||
FontFamily="{StaticResource UiFont}"
|
|
||||||
FontSize="13"
|
|
||||||
FontWeight="SemiBold"
|
|
||||||
Text="未选择节点"
|
|
||||||
TextWrapping="Wrap" />
|
|
||||||
<TextBlock
|
|
||||||
Margin="0,6,0,0"
|
|
||||||
FontFamily="{StaticResource UiFont}"
|
|
||||||
FontSize="10"
|
|
||||||
Foreground="#666666"
|
|
||||||
Text="从左侧树中选择一个节点后,这里会显示可编辑的参数。"
|
|
||||||
TextWrapping="Wrap" />
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Grid>
|
||||||
</Grid>
|
</ScrollViewer>
|
||||||
</ScrollViewer>
|
|
||||||
|
|
||||||
<Rectangle
|
|
||||||
Grid.Column="3"
|
|
||||||
Width="1"
|
|
||||||
Fill="{StaticResource SeparatorBrush}" />
|
|
||||||
|
|
||||||
<Grid Grid.Column="4">
|
|
||||||
<views:PipelineEditorView
|
<views:PipelineEditorView
|
||||||
x:Name="InspectionModulePipelineEditor"
|
x:Name="InspectionModulePipelineEditor"
|
||||||
|
Margin="0"
|
||||||
Visibility="{Binding EditorVisibility}" />
|
Visibility="{Binding EditorVisibility}" />
|
||||||
|
|
||||||
<Border
|
<Border
|
||||||
x:Name="InspectionModulePipelineEmptyState"
|
x:Name="NodePropertyEmptyState"
|
||||||
Margin="12"
|
Margin="12"
|
||||||
Padding="16"
|
Padding="16"
|
||||||
Background="#FAFAFA"
|
Background="#FAFAFA"
|
||||||
BorderBrush="#E6E6E6"
|
BorderBrush="#E6E6E6"
|
||||||
BorderThickness="1"
|
BorderThickness="1"
|
||||||
CornerRadius="6"
|
CornerRadius="6">
|
||||||
Visibility="{Binding EmptyStateVisibility}">
|
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<TextBlock
|
<TextBlock
|
||||||
FontFamily="{StaticResource UiFont}"
|
FontFamily="{StaticResource UiFont}"
|
||||||
FontSize="13"
|
FontSize="13"
|
||||||
FontWeight="SemiBold"
|
FontWeight="SemiBold"
|
||||||
Text="未选择检测模块"
|
Text="未选择节点"
|
||||||
TextWrapping="Wrap" />
|
TextWrapping="Wrap" />
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="0,6,0,0"
|
Margin="0,6,0,0"
|
||||||
FontFamily="{StaticResource UiFont}"
|
FontFamily="{StaticResource UiFont}"
|
||||||
FontSize="10"
|
FontSize="10"
|
||||||
Foreground="#666666"
|
Foreground="#666666"
|
||||||
Text="请选择一个检测模块节点后,在这里拖拽算子并配置参数。"
|
Text="从左侧树中选择一个节点后,这里会显示对应的参数或检测流程。"
|
||||||
TextWrapping="Wrap" />
|
TextWrapping="Wrap" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
|
|||||||
@@ -69,7 +69,6 @@ namespace XplorePlane.Views.Cnc
|
|||||||
logger);
|
logger);
|
||||||
|
|
||||||
InspectionModulePipelineEditor.DataContext = _inspectionModulePipelineViewModel;
|
InspectionModulePipelineEditor.DataContext = _inspectionModulePipelineViewModel;
|
||||||
InspectionModulePipelineEmptyState.DataContext = _inspectionModulePipelineViewModel;
|
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
@@ -216,6 +215,10 @@ namespace XplorePlane.Views.Cnc
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool isReadOnlyNode = viewModel.SelectedNode?.IsReadOnlyNodeProperties == true;
|
bool isReadOnlyNode = viewModel.SelectedNode?.IsReadOnlyNodeProperties == true;
|
||||||
|
bool showNodeProperties = viewModel.SelectedNode != null && !viewModel.SelectedNode.IsInspectionModule;
|
||||||
|
|
||||||
|
NodePropertyEditor.Visibility = showNodeProperties ? Visibility.Visible : Visibility.Collapsed;
|
||||||
|
NodePropertyEmptyState.Visibility = viewModel.SelectedNode == null ? Visibility.Visible : Visibility.Collapsed;
|
||||||
|
|
||||||
foreach (var textBox in FindVisualDescendants<TextBox>(propertyEditorRoot))
|
foreach (var textBox in FindVisualDescendants<TextBox>(propertyEditorRoot))
|
||||||
{
|
{
|
||||||
@@ -322,15 +325,7 @@ namespace XplorePlane.Views.Cnc
|
|||||||
|
|
||||||
private DependencyObject FindPropertyEditorRoot()
|
private DependencyObject FindPropertyEditorRoot()
|
||||||
{
|
{
|
||||||
foreach (var scrollViewer in FindVisualDescendants<ScrollViewer>(this))
|
return NodePropertyEditor;
|
||||||
{
|
|
||||||
if (Grid.GetColumn(scrollViewer) == 2)
|
|
||||||
{
|
|
||||||
return scrollViewer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Border FindNodeCard(DependencyObject root)
|
private static Border FindNodeCard(DependencyObject root)
|
||||||
|
|||||||
Reference in New Issue
Block a user