2026-01-26 14:51:28 +09:00

427 lines
26 KiB
XML

<UserControl x:Class="MilUI.ShapeModelSettingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:behavior="http://schemas.microsoft.com/xaml/behaviors"
xmlns:aurora="clr-namespace:Aurora.View;assembly=Aurora"
xmlns:milCommon="clr-namespace:MilCommon;assembly=MilCommon"
xmlns:visionCommonUI="clr-namespace:VisionCommonUI;assembly=VisionCommonUI"
xmlns:local="clr-namespace:MilUI"
x:Name="shapeModelSettingView"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=local:ShapeModelSettingViewModel}"
Width="520" Height="960">
<UserControl.Resources>
<ResourceDictionary>
<local:ForegroundColorConverter x:Key="foregroundColorConverter"/>
<aurora:BoolConverter
x:Key="boolInverter"
FalseValue="True"
TrueValue="False"/>
<aurora:BoolToVisibilityConverter
x:Key="visibilityConverter"
True="Visible"
False="Collapsed"/>
<aurora:BoolToVisibilityConverter
x:Key="visibilityInverter"
True="Collapsed"
False="Visible"/>
<Style TargetType="{x:Type GroupBox}" BasedOn="{StaticResource AVDefaultGB}"/>
</ResourceDictionary>
</UserControl.Resources>
<behavior:Interaction.Triggers>
<behavior:PropertyChangedTrigger Binding="{Binding IsVisible, ElementName=shapeModelSettingView}">
<behavior:InvokeCommandAction
Command="{Binding CMD_VisibleChanged}"
CommandParameter="{Binding IsVisible, ElementName=shapeModelSettingView}"/>
</behavior:PropertyChangedTrigger>
</behavior:Interaction.Triggers>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="90"/>
<RowDefinition Height="5*"/>
<RowDefinition Height="150"/>
<RowDefinition Height="100"/>
<RowDefinition Height="5"/>
<RowDefinition Height="70"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<visionCommonUI:PatternInfoView Grid.Column="0" IsEnabled="{Binding ElementName=shapeModelSettingView, Path=DataContext.IsPatternRegistered}"
IsActivated="{Binding ElementName=shapeModelSettingView, Path=DataContext.PatternInfo.IsActivated}"
Description="{Binding ElementName=shapeModelSettingView, Path=DataContext.PatternInfo.Description}"/>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Style="{StaticResource styleTextBlockSubTitleSmall}"
HorizontalAlignment="Center" VerticalAlignment="Bottom">
<Run Text="{Binding [UseQuickFind], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
<CheckBox Grid.Row="1" Style="{StaticResource StCheckBox}"
IsChecked="{Binding IsQuickFind}" IsEnabled="False" HorizontalAlignment="Center"/>
</Grid>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" Margin="5">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleTextBlockSubTitleSmall}">
<Run Text="{Binding [Model], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Type], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<ComboBox Grid.Column="0" Margin="10, 5" Padding="10" Height="40" FontSize="14"
ItemsSource="{Binding ModelTypeItems}"
SelectedItem="{Binding TrainParam.ModelType}">
</ComboBox>
<Button Grid.Column="1" Margin="5, 5, 10, 5" Width="40" Height="40"
Command="{Binding CMD_SetModelType}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_magic_wand.png"/>
</StackPanel>
</Button>
</Grid>
</GroupBox>
<GroupBox Grid.Column="1" Margin="5" IsEnabled="{Binding IsPatternRegistered}">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleTextBlockSubTitleSmall}">
<Run Text="{Binding [Foreground], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Color], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<RadioButton Grid.Column="0" Style="{StaticResource stylePatternMaskRadioButton}" GroupName="radioShapeModelObjColor"
Height="40"
IsChecked="{Binding TrainParam.ForegroundColor, Converter={StaticResource foregroundColorConverter}, ConverterParameter={x:Static milCommon:eMilForegroundColor.Black}}">
<RadioButton.ToolTip>
<TextBlock>
<Run Text="{Binding [Black], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</RadioButton.ToolTip>
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_circle_black.png"/>
</RadioButton>
<RadioButton Grid.Column="1" Style="{StaticResource stylePatternMaskRadioButton}" GroupName="radioShapeModelObjColor"
Height="40"
IsChecked="{Binding TrainParam.ForegroundColor, Converter={StaticResource foregroundColorConverter}, ConverterParameter={x:Static milCommon:eMilForegroundColor.White}}">
<RadioButton.ToolTip>
<TextBlock>
<Run Text="{Binding [White], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</RadioButton.ToolTip>
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_circle_white.png"/>
</RadioButton>
<RadioButton Grid.Column="2" Style="{StaticResource stylePatternMaskRadioButton}" GroupName="radioShapeModelObjColor"
Height="40"
IsChecked="{Binding TrainParam.ForegroundColor, Converter={StaticResource foregroundColorConverter}, ConverterParameter={x:Static milCommon:eMilForegroundColor.Any}}">
<RadioButton.ToolTip>
<TextBlock>
<Run Text="{Binding [Any], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</RadioButton.ToolTip>
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_circle_any.png"/>
</RadioButton>
</Grid>
</GroupBox>
</Grid>
<GroupBox Grid.Row="2" Margin="5" IsEnabled="{Binding IsPatternRegistered}">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleTextBlockSubTitleSmall_Orange}">
<Run Text="{Binding [Find], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Parameter], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<visionCommonUI:UCContentSlider Grid.Row="0" Grid.Column="0" Margin="5"
MinValue="0" MaxValue="100"
KeyValue="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.Acceptance}">
<TextBlock Style="{StaticResource stylePatternSliderTextBlock}">
<Run Text="{Binding [Acceptance], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentSlider>
<visionCommonUI:UCContentSlider Grid.Row="0" Grid.Column="1" Margin="5"
MinValue="0" MaxValue="180" TickFrequency="1" Step="0.1"
KeyValue="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.AngleTolerance.Degree}">
<TextBlock Style="{StaticResource stylePatternSliderTextBlock}">
<Run Text="{Binding [Angle], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Tolerance], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentSlider>
<visionCommonUI:UCContentSlider Grid.Row="1" Grid.Column="0" Margin="5"
MinValue="0" MaxValue="100"
KeyValue="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.Certainty}">
<TextBlock Style="{StaticResource stylePatternSliderTextBlock}">
<Run Text="{Binding [Certainty], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentSlider>
<visionCommonUI:UCContentSlider Grid.Row="1" Grid.Column="1" Margin="5"
MinValue="0" MaxValue="100"
KeyValue="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.FindNumber}">
<TextBlock Style="{StaticResource stylePatternSliderTextBlock}">
<Run Text="{Binding [Find], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Number], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentSlider>
<visionCommonUI:UCContentSlider Grid.Row="2" Grid.Column="0" Margin="5"
MinValue="0" MaxValue="100"
KeyValue="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.Smoothness}">
<TextBlock Style="{StaticResource stylePatternSliderTextBlock}">
<Run Text="{Binding [Smoothness], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentSlider>
<visionCommonUI:UCContentSlider Grid.Row="2" Grid.Column="1" Margin="5"
MinValue="0.1" MaxValue="0.5" TickFrequency="0.01" Step="0.01"
KeyValue="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.ScaleTolerance}">
<TextBlock Style="{StaticResource stylePatternSliderTextBlock}">
<Run Text="{Binding [Scale], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Tolerance], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentSlider>
<visionCommonUI:UCContentComboBox Grid.Row="3" Grid.Column="0"
ItemsSource="{Binding ElementName=shapeModelSettingView, Path=DataContext.AccuracyItems}"
SelectedItem="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.Accuracy}">
<TextBlock Style="{StaticResource stylePatternComboBoxTextBlock}">
<Run Text="{Binding [Accuracy], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentComboBox>
<visionCommonUI:UCContentComboBox Grid.Row="3" Grid.Column="1"
ItemsSource="{Binding ElementName=shapeModelSettingView, Path=DataContext.DetailLevelItems}"
SelectedItem="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.DetailLevel}">
<TextBlock Style="{StaticResource stylePatternComboBoxTextBlock}">
<Run Text="{Binding [Detail], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Level], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentComboBox>
<visionCommonUI:UCContentComboBox Grid.Row="4" Grid.Column="0"
ItemsSource="{Binding ElementName=shapeModelSettingView, Path=DataContext.SpeedItems}"
SelectedItem="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.Speed}">
<TextBlock Style="{StaticResource stylePatternComboBoxTextBlock}">
<Run Text="{Binding [Speed], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentComboBox>
<visionCommonUI:UCContentComboBox Grid.Row="4" Grid.Column="1"
ItemsSource="{Binding ElementName=shapeModelSettingView, Path=DataContext.PolarityItems}"
SelectedItem="{Binding ElementName=shapeModelSettingView, Path=DataContext.RunParam.Polarity}">
<TextBlock Style="{StaticResource stylePatternComboBoxTextBlock}">
<Run Text="{Binding [Polarity], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</visionCommonUI:UCContentComboBox>
</Grid>
</GroupBox>
<GroupBox Grid.Row="3" Margin="5" IsEnabled="{Binding IsPatternRegistered}">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleTextBlockSubTitleSmall_Orange}">
<Run Text="{Binding [Setting], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Control], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<Grid Margin="0, 10">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Grid.Column="0"
Style="{StaticResource styleBtnPatternSetting}"
Visibility="{Binding IsSubPattern, Converter={StaticResource visibilityInverter}}"
Command="{Binding CMD_SetLight}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_light.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}">
<Run Text="{Binding [Light], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</StackPanel>
</Button>
<Button Grid.Row="0" Grid.Column="1"
Style="{StaticResource styleBtnPatternSetting}"
Command="{Binding CMD_SetPreProc}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_filtering.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}">
<Run Text="{Binding [Pre], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Proc], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</StackPanel>
</Button>
<Button Grid.Row="0" Grid.Column="2"
Style="{StaticResource styleBtnPatternSetting}"
Command="{Binding CMD_TrainPattern}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_register.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}"
Text="{Binding [Train], Source={StaticResource langTokens}, Mode=OneWay}"/>
</StackPanel>
</Button>
<Button Grid.Row="1" Grid.Column="0"
Style="{StaticResource styleBtnPatternSetting}"
Command="{Binding CMD_SetFindROI}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_find_roi.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}">
<Run Text="{Binding [Find], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [ROI], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</StackPanel>
</Button>
<Button Grid.Row="1" Grid.Column="1"
Style="{StaticResource styleBtnPatternSetting}"
Command="{Binding CMD_FindPattern}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_magnifying_glass.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}">
<Run Text="{Binding [Test], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Find], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</StackPanel>
</Button>
</Grid>
</GroupBox>
<visionCommonUI:FixtureSettingView Grid.Row="4" IsEnabled="{Binding IsPatternRegistered}"
Enabled="{Binding ElementName=shapeModelSettingView, Path=DataContext.PatternInfo.FixtureSetting.Enabled}"
ItemsSource="{Binding ElementName=shapeModelSettingView, Path=DataContext.FixturePatterns}"
SelectedItem="{Binding ElementName=shapeModelSettingView, Path=DataContext.PatternInfo.FixtureSetting.Pattern1}"/>
<Separator Grid.Row="5"/>
<StackPanel Grid.Row="6" Margin="15, 10" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Style="{StaticResource styleBtnPatternSetting}"
IsEnabled="{Binding IsSubPatternNotRegistered}"
Command="{Binding CMD_Copy}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_copy.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}"
Text="{Binding [Copy], Source={StaticResource langTokens}, Mode=OneWay}"/>
</StackPanel>
</Button>
<Button Style="{StaticResource styleBtnPatternSetting}"
IsEnabled="{Binding IsSubPatternNotRegistered}"
Command="{Binding CMD_Create}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_register.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}"
Text="{Binding [Register], Source={StaticResource langTokens}, Mode=OneWay}"/>
</StackPanel>
</Button>
<Button Style="{StaticResource styleBtnPatternSetting}"
IsEnabled="{Binding IsPatternRegistered}"
Command="{Binding CMD_Save}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_ok.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}"
Text="{Binding [Save], Source={StaticResource langTokens}, Mode=OneWay}"/>
</StackPanel>
</Button>
<Button Style="{StaticResource styleBtnPatternSetting}"
IsEnabled="{Binding IsSubPatternRegistered}"
Command="{Binding CMD_Delete}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_bin.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}"
Text="{Binding [Delete], Source={StaticResource langTokens}, Mode=OneWay}"/>
</StackPanel>
</Button>
<Button Style="{StaticResource styleBtnPatternSetting}"
Command="{Binding CMD_Cancel}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_cancel.png"/>
<TextBlock Style="{StaticResource stylePatternButtonTextBlock}"
Text="{Binding [Close], Source={StaticResource langTokens}, Mode=OneWay}"/>
</StackPanel>
</Button>
</StackPanel>
</Grid>
</UserControl>