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

359 lines
22 KiB
XML

<UserControl x:Class="MilUI.ImageMaskView"
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:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:auroraUc="clr-namespace:AuroraUIComponent.UserControls;assembly=AuroraUIComponent"
xmlns:view="clr-namespace:Aurora.View;assembly=Aurora"
xmlns:local="clr-namespace:MilUI"
mc:Ignorable="d"
d:DesignWidth="500" d:DesignHeight="700"
SizeChanged="UserControl_SizeChanged"
Background="{DynamicResource AuroraVision.Brushes.Window.Default.Background}"
Width="500" Height="900">
<UserControl.Resources>
<Style TargetType="{x:Type GroupBox}" BasedOn="{StaticResource AVDefaultGB}"/>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="300"/>
<RowDefinition Height="5"/>
<RowDefinition Height="70"/>
</Grid.RowDefinitions>
<WindowsFormsHost Grid.Row="0">
<wf:Panel x:Name="winFormPanel"/>
</WindowsFormsHost>
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6*"/>
<ColumnDefinition Width="4*"/>
</Grid.ColumnDefinitions>
<GroupBox Grid.Row="0" Grid.Column="0" Margin="5">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleTextBlockSubTitleSmall}">
<Run Text="{Binding [Mask], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Control], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Center">
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<RadioButton Grid.Row="0" Grid.Column="0" Margin="1" Style="{StaticResource stylePatternMaskRadioButton}"
Width="20" Height="20" HorizontalContentAlignment="Center" ToolTip="1"
Command="{Binding CMD_SetMaskSize}" CommandParameter="1">
<Rectangle Margin="0" Width="2" Height="2" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType=RadioButton}}"/>
</RadioButton>
<RadioButton Grid.Row="0" Grid.Column="1" Margin="1" Style="{StaticResource stylePatternMaskRadioButton}"
Width="20" Height="20" HorizontalContentAlignment="Center" ToolTip="5"
Command="{Binding CMD_SetMaskSize}" CommandParameter="5"
IsChecked="True">
<Rectangle Margin="0" Width="4" Height="4" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType=RadioButton}}"/>
</RadioButton>
<RadioButton Grid.Row="0" Grid.Column="2" Margin="0" Padding="0" Style="{StaticResource stylePatternMaskRadioButton}"
Width="20" Height="20" HorizontalContentAlignment="Center" ToolTip="10"
Command="{Binding CMD_SetMaskSize}" CommandParameter="10">
<Rectangle Margin="0" Width="6" Height="6" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType=RadioButton}}"/>
</RadioButton>
<RadioButton Grid.Row="1" Grid.Column="0" Margin="0" Padding="0" Style="{StaticResource stylePatternMaskRadioButton}"
Width="20" Height="20" HorizontalContentAlignment="Center" ToolTip="20"
Command="{Binding CMD_SetMaskSize}" CommandParameter="20">
<Rectangle Margin="0" Width="8" Height="8" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType=RadioButton}}"/>
</RadioButton>
<RadioButton Grid.Row="1" Grid.Column="1" Margin="0" Padding="0" Style="{StaticResource stylePatternMaskRadioButton}"
Width="20" Height="20" HorizontalContentAlignment="Center" ToolTip="50"
Command="{Binding CMD_SetMaskSize}" CommandParameter="50">
<Rectangle Margin="0" Width="10" Height="10" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType=RadioButton}}"/>
</RadioButton>
<RadioButton Grid.Row="1" Grid.Column="2" Margin="0" Padding="0" Style="{StaticResource stylePatternMaskRadioButton}"
Width="20" Height="20" HorizontalContentAlignment="Center" ToolTip="100"
Command="{Binding CMD_SetMaskSize}" CommandParameter="100">
<Rectangle Margin="0" Width="12" Height="12" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType=RadioButton}}"/>
</RadioButton>
</Grid>
<RadioButton Margin="5" Style="{StaticResource stylePatternMaskRadioButton}"
Click="EnableMask_Button_Click"
IsChecked="True">
<RadioButton.ToolTip>
<TextBlock>
<Run Text="{Binding [Masking], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Mode], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</RadioButton.ToolTip>
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_masking.png"/>
</RadioButton>
<RadioButton Margin="5" Style="{StaticResource stylePatternMaskRadioButton}"
Click="EnableEraser_Button_Click">
<RadioButton.ToolTip>
<TextBlock>
<Run Text="{Binding [Eraser], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Mode], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</RadioButton.ToolTip>
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_eraser.png"/>
</RadioButton>
<Button Margin ="5" Width="45" Height="45" Background="Transparent"
Click="ClearMask_Button_Click">
<Button.ToolTip>
<TextBlock>
<Run Text="{Binding [Clear], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</Button.ToolTip>
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_bin.png"/>
</Button>
<Ellipse Margin="5" Width="15" Height="15" Stroke="#FF2196F3">
<Ellipse.Fill>
<ImageBrush ImageSource="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_question.png"/>
</Ellipse.Fill>
<Ellipse.ToolTip>
<TextBlock>
<Run Text="- Masking : Drag with mouse Right-button"/>
<LineBreak/>
<Run Text="- Zoom in/out : Mouse wheels"/>
<LineBreak/>
<Run Text="- Scroll image : Drag with mouse Left-button"/>
</TextBlock>
</Ellipse.ToolTip>
</Ellipse>
</StackPanel>
</GroupBox>
<GroupBox Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Margin="5">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleTextBlockSubTitleSmall}">
<Run Text="{Binding [Origin], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Control], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<auroraUc:UCKeyValue Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" x:Name="trainOriginMoveStep"
KeyText="{Binding [MoveStep], Source={StaticResource langTokens}, Mode=OneWay}"
Value="5" DecimalPlaces="1"/>
<Button Grid.Row="1" Grid.Column="0"
Style="{StaticResource styleTrainOriginControlDiagonalButton}"
Click="TrainOrigin_Left_Up_Button_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_arrow_left_up.png"/>
</StackPanel>
</Button>
<Button Grid.Row="1" Grid.Column="1"
Style="{StaticResource styleTrainOriginControlStraightButton}"
Click="TrainOrigin_Up_Button_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_arrow_up.png"/>
</StackPanel>
</Button>
<Button Grid.Row="1" Grid.Column="2"
Style="{StaticResource styleTrainOriginControlDiagonalButton}"
Click="TrainOrigin_Right_Up_Button_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_arrow_right_up.png"/>
</StackPanel>
</Button>
<Button Grid.Row="2" Grid.Column="0"
Style="{StaticResource styleTrainOriginControlStraightButton}"
Click="TrainOrigin_Left_Button_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_arrow_left.png"/>
</StackPanel>
</Button>
<Button Grid.Row="2" Grid.Column="1"
Style="{StaticResource styleTrainOriginControlDiagonalButton}"
Click="TrainOrigin_Center_Button_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_find_roi.png"/>
</StackPanel>
</Button>
<Button Grid.Row="2" Grid.Column="2"
Style="{StaticResource styleTrainOriginControlStraightButton}"
Click="TrainOrigin_Right_Button_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_arrow_right.png"/>
</StackPanel>
</Button>
<Button Grid.Row="3" Grid.Column="0"
Style="{StaticResource styleTrainOriginControlDiagonalButton}"
Click="TrainOrigin_Left_Down_Button_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_arrow_left_down.png"/>
</StackPanel>
</Button>
<Button Grid.Row="3" Grid.Column="1"
Style="{StaticResource styleTrainOriginControlStraightButton}"
Click="TrainOrigin_Down_Button_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_arrow_down.png"/>
</StackPanel>
</Button>
<Button Grid.Row="3" Grid.Column="2"
Style="{StaticResource styleTrainOriginControlDiagonalButton}"
Click="TrainOrigin_Right_Down_Button_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_arrow_right_down.png"/>
</StackPanel>
</Button>
</Grid>
</GroupBox>
<GroupBox Grid.Row="1" Grid.Column="0" Grid.RowSpan="2" Margin="5">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleTextBlockSubTitleSmall}">
<Run Text="{Binding [Mask], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Region], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Grid.RowSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Style="{StaticResource stylePatternSliderTextBlock}" HorizontalAlignment="Center">
<Run Text="{Binding [Layout], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
<ComboBox x:Name="comboBoxMaskLayout"
Margin="5, 20" Width="80" HorizontalContentAlignment="Center"
SelectedIndex="3"
ItemsSource="{Binding MaskLayoutItems}"
SelectionChanged="ComboBox_SelectionChanged">
</ComboBox>
</StackPanel>
<Grid Grid.Column="1" x:Name="gridMaskRegion" Margin="10"/>
</Grid>
</GroupBox>
<GroupBox Grid.Row="2" Grid.Column="1" Margin="5">
<GroupBox.Header>
<TextBlock Text="{Binding [Zoom], Source={StaticResource langTokens}, Mode=OneWay}"
Style="{StaticResource styleTextBlockSubTitleSmall}"/>
</GroupBox.Header>
<StackPanel Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Center">
<Button Margin ="5" Width="45" Height="45" Background="Transparent"
Click="ZoomMinus_Button_Click">
<Button.ToolTip>
<TextBlock>
<Run Text="{Binding [Zoom], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Out], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</Button.ToolTip>
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_zoom_minus.png"/>
</Button>
<Button Margin ="5" Width="45" Height="45" Background="Transparent"
Click="FitImage_Button_Click">
<Button.ToolTip>
<TextBlock>
<Run Text="{Binding [Fit], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</Button.ToolTip>
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_fit.png"/>
</Button>
<Button Margin ="5" Width="45" Height="45" Background="Transparent"
Click="ZoomPlus_Button_Click">
<Button.ToolTip>
<TextBlock>
<Run Text="{Binding [Zoom], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [In], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</Button.ToolTip>
<Image Style="{StaticResource stylePatternButtonImage}"
Source="pack://application:,,,/VisionCommonUI;component/Icons/ColorIcons/img_zoom_plus.png"/>
</Button>
</StackPanel>
</GroupBox>
</Grid>
<Separator Grid.Row="2"/>
<StackPanel Grid.Row="3" Margin="10" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Style="{StaticResource styleBtnPatternSetting}"
Click="SaveMask_Button_Click">
<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}"
Click="Cancel_Button_Click">
<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>