2026-01-26 18:56:53 +09:00

376 lines
26 KiB
XML

<UserControl x:Class="VisionUI.Setup.VisionRepeatView"
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:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
xmlns:local="clr-namespace:VisionUI.Setup"
xmlns:view="clr-namespace:Aurora.View;assembly=Aurora"
xmlns:auroraUc="clr-namespace:AuroraUIComponent.UserControls;assembly=AuroraUIComponent"
dx:ThemeManager.Theme="VS2019Dark"
d:DataContext="{d:DesignInstance Type=local:VisionRepeatViewModel}"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
IsVisibleChanged="UserControl_IsVisibleChanged">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<view:SharedResourceDictionary Source="pack://application:,,,/AuroraUIComponent;component/Style/GroupBox.xaml"/>
</ResourceDictionary.MergedDictionaries>
<view:BoolToVisibilityConverter
x:Key="visibilityConverter"
True="Visible"
False="Collapsed"/>
<view:BoolToVisibilityConverter
x:Key="visibilityInverter"
True="Collapsed"
False="Visible"/>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid x:Name="gridCameraView" Grid.Column="0" />
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1.2*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<!--VisionRepeat Param-->
<Grid Grid.Row="0">
<GroupBox Grid.Column="0" FontSize="18" Style="{StaticResource AVDefaultGB}">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleGroupBoxHeaderTextBlock}">
<Run Text="{Binding [Parameter], Source={StaticResource langTokens}, Mode=OneWay}"/>
<Run Text="{Binding [Setting], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.4*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1.4*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<!--Step-->
<Grid Grid.Row="0" Grid.Column="0" Height="30" HorizontalAlignment="Center">
<TextBlock Text="{Binding [Step], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" Style="{StaticResource styleTextBlockTitleSmall}" />
</Grid>
<Grid Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" >
<auroraUc:UCKeyValue Value="{Binding Path=RepeatCount}" Margin="-28,0,0,0"/>
</Grid>
<!--Enabled-->
<!--<Grid Grid.Row="0" Grid.Column="2" Height="30" HorizontalAlignment="Center">
<TextBlock Text="Enabled" FontSize="15" Style="{StaticResource styleTextBlockTitleSmall}" />
</Grid>
<Grid Grid.Row="0" Grid.Column="3" Height="30" HorizontalAlignment="Center">
<CheckBox Grid.Column="1" IsChecked="{Binding Enabled, Mode=TwoWay}"
Style="{StaticResource styleCheckBoxRcpValue}"/>
</Grid>-->
<!--Pattern-->
<Grid Grid.Row="1" Grid.Column="0" Height="30" HorizontalAlignment="Center">
<TextBlock Text="{Binding [Pattern], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" Style="{StaticResource styleTextBlockTitleSmall}" />
</Grid>
<Grid Grid.Row="1" Grid.Column="1" >
<ComboBox x:Name="cbVisionRepeatPattern" FontSize="13" SelectionChanged="cbVisionRepeatPattern_SelectionChanged"></ComboBox>
</Grid>
<!--Save Buttons-->
<Grid Grid.Row="1" Grid.Column="2" Height="30" HorizontalAlignment="Center">
<TextBlock Text="{Binding [Save], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" Style="{StaticResource styleTextBlockTitleSmall}"/>
</Grid>
<Grid Grid.Row="1" Grid.Column="3">
<Button Style="{StaticResource styleBtnNormalCamTool}"
Command="{Binding ButtonCommandSave}">
<Image Width="25" Height="25"
Style="{StaticResource styleImgBtnAcition}" Source="pack://application:,,,/VisionCommonUI;component/Icons/icon_save.png"/>
</Button>
</Grid>
<!--Start Buttons-->
<Grid Grid.Row="2" Grid.Column="0" Height="30" HorizontalAlignment="Center">
<TextBlock Text="{Binding [StartVisionRepeat], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" Style="{StaticResource styleTextBlockTitleSmall}"/>
</Grid>
<Grid Grid.Row="2" Grid.Column="1">
<Button Style="{StaticResource styleBtnNormalCamTool}" Command="{Binding ButtonCommandStart}" x:Name="btnStart">
<Image Margin="2,0,0,0" Width="25" Height="25" Style="{StaticResource styleImgBtnAcition}" Source="pack://application:,,,/VisionCommonUI;component/Icons/img_play.png"/>
</Button>
</Grid>
<Grid Grid.Row="2" Grid.Column="2" Height="30" HorizontalAlignment="Center">
<TextBlock Text="{Binding [StartAxisRepeat], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" Style="{StaticResource styleTextBlockTitleSmall}"/>
</Grid>
<Grid Grid.Row="2" Grid.Column="3">
<Button Style="{StaticResource styleBtnNormalCamTool}" Command="{Binding ButtonCommandStartDynamic}" x:Name="btnStartDynamic" Visibility="Visible">
<Image Margin="2,0,0,0" Width="25" Height="25" Style="{StaticResource styleImgBtnAcition}" Source="pack://application:,,,/VisionCommonUI;component/Icons/img_play.png"/>
</Button>
</Grid>
<!--Stop Buttons-->
<Grid Grid.Row="3" Grid.Column="0" Height="30" HorizontalAlignment="Center">
<TextBlock Text="{Binding [Stop], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" Style="{StaticResource styleTextBlockTitleSmall}"/>
</Grid>
<Grid Grid.Row="3" Grid.Column="1">
<Button Style="{StaticResource styleBtnNormalCamTool}" Command="{Binding ButtonCommandCancel}" x:Name="btnStop">
<Image Width="25" Height="25" Style="{StaticResource styleImgBtnAcition}" Source="pack://application:,,,/VisionCommonUI;component/Icons/img_stop2.png"/>
</Button>
</Grid>
<!--Log Buttons--><!--
<Grid Grid.Row="3" Grid.Column="2" Height="30" HorizontalAlignment="Center">
<TextBlock Text="Log" FontSize="15" Style="{StaticResource styleTextBlockTitleSmall}"/>
</Grid>
<Grid Grid.Row="3" Grid.Column="3">
<Button Style="{StaticResource styleBtnNormalCamTool}" Command="{Binding ButtonCommandLog}" x:Name="btnLog">
<Image Width="25" Height="25" Style="{StaticResource styleImgBtnAcition}" Source="pack://application:,,,/VisionCommonUI;component/Icons/img_info.png"/>
</Button>
</Grid>-->
</Grid>
</GroupBox>
</Grid>
<!--VisionRepeat Log-->
<Grid Grid.Row="1">
<GroupBox FontSize="15" Style="{StaticResource AVDefaultGB}">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleGroupBoxHeaderTextBlock}">
<Run Text="{Binding [Log], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<Grid Grid.Column="0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DatePicker Grid.Row="0" Name="CalendarDatePicker" HorizontalAlignment="Right"
Height="30"
TextElement.FontSize="12"
TextElement.FontWeight="Bold"
BorderBrush="Transparent"
VerticalAlignment="Center"
VerticalContentAlignment="Center"
ToolTip="Select a date that you want to load."
CalendarStyle="{StaticResource styleCalendar}"
SelectedDate="{Binding Path=SelectedDate, Mode=TwoWay}"/>
<DockPanel Grid.Row="1" Visibility="{Binding IsShapeModelFinder, Converter={StaticResource visibilityConverter}}">
<DataGrid ItemsSource="{Binding Path=VisionRepeatLogItems, Mode=TwoWay,
NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
FontSize="14"
IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Step" Binding="{Binding Step}" />
<DataGridTextColumn Header="IX[Pixel]" Binding="{Binding ImagePosX, StringFormat=F4}"/>
<DataGridTextColumn Header="IY[pixel]" Binding="{Binding ImagePosY, StringFormat=F4}"/>
<DataGridTextColumn Header="SX[mm]" Binding="{Binding StaticPosX, StringFormat=F4}"/>
<DataGridTextColumn Header="SY[mm]" Binding="{Binding StaticPosY, StringFormat=F4}"/>
<DataGridTextColumn Header="Angle" Binding="{Binding Angle, StringFormat=F4}"/>
<DataGridTextColumn Header="Width" Binding="{Binding Width, StringFormat=F4}"/>
<DataGridTextColumn Header="Height" Binding="{Binding Height, StringFormat=F4}"/>
<DataGridTextColumn Header="Radius" Binding="{Binding Radius, StringFormat=F4}"/>
</DataGrid.Columns>
</DataGrid>
</DockPanel>
<DockPanel Grid.Row="1" Visibility="{Binding IsShapeModelFinder, Converter={StaticResource visibilityInverter}}">
<DataGrid ItemsSource="{Binding Path=VisionRepeatLogItems, Mode=TwoWay,
NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
FontSize="14"
IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Step" Binding="{Binding Step}" />
<DataGridTextColumn Header="IX[Pixel]" Binding="{Binding ImagePosX, StringFormat=F4}"/>
<DataGridTextColumn Header="IY[pixel]" Binding="{Binding ImagePosY, StringFormat=F4}"/>
<DataGridTextColumn Header="SX[mm]" Binding="{Binding StaticPosX, StringFormat=F4}"/>
<DataGridTextColumn Header="SY[mm]" Binding="{Binding StaticPosY, StringFormat=F4}"/>
<DataGridTextColumn Header="Angle" Binding="{Binding Angle, StringFormat=F4}"/>
</DataGrid.Columns>
</DataGrid>
</DockPanel>
</Grid>
</Grid>
</GroupBox>
</Grid>
<!--VisionRepeat Result-->
<Grid Grid.Row="2">
<GroupBox Grid.Column="0" FontSize="18" Style="{StaticResource AVDefaultGB}">
<GroupBox.Header>
<TextBlock Style="{StaticResource styleGroupBoxHeaderTextBlock}">
<Run Text="{Binding [Result], Source={StaticResource langTokens}, Mode=OneWay}"/>
</TextBlock>
</GroupBox.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--Image Pos Result-->
<Grid Grid.Column="0" Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--PosX-->
<TextBlock Grid.Row="0" Grid.Column="1" Text="IX [Pixel]" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<!--PosY-->
<TextBlock Grid.Row="0" Grid.Column="2" Text="IY [Pixel]" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<!--Mean-->
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding [Mean], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding MeanX_I, StringFormat=F2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Standard-->
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding [StdDev], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="2" Grid.Column="1" Text="{Binding SdX_I, StringFormat=F2,Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Max-->
<TextBlock Grid.Row="3" Grid.Column="0" Text="{Binding [Max], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="3" Grid.Column="1" Text="{Binding MaxX_I, StringFormat=F2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Min-->
<TextBlock Grid.Row="4" Grid.Column="0" Text="{Binding [Min], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="4" Grid.Column="1" Text="{Binding MinX_I, StringFormat=F2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Range-->
<TextBlock Grid.Row="5" Grid.Column="0" Text="{Binding [Range], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="5" Grid.Column="1" Text="{Binding RangeX_I, StringFormat=F2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<TextBlock Grid.Row="0" Grid.Column="2" Text="" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<!--Mean-->
<TextBox Grid.Row="1" Grid.Column="2" Text="{Binding MeanY_I, StringFormat=F2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Standard-->
<TextBox Grid.Row="2" Grid.Column="2" Text="{Binding SdY_I, StringFormat=F2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Max-->
<TextBox Grid.Row="3" Grid.Column="2" Text="{Binding MaxY_I, StringFormat=F2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Min-->
<TextBox Grid.Row="4" Grid.Column="2" Text="{Binding MinY_I, StringFormat=F2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Range-->
<TextBox Grid.Row="5" Grid.Column="2" Text="{Binding RangeY_I, StringFormat=F2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
</Grid>
<!--World Pos Result-->
<Grid Grid.Column="1" Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--PosX-->
<TextBlock Grid.Row="0" Grid.Column="1" Text="SX [mm]" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<!--PosY-->
<TextBlock Grid.Row="0" Grid.Column="2" Text="SY [mm]" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<!--Mean-->
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding [Mean], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding MeanX_S, StringFormat=F3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Standard-->
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding [StdDev], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="2" Grid.Column="1" Text="{Binding SdX_S, StringFormat=F3,Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Max-->
<TextBlock Grid.Row="3" Grid.Column="0" Text="{Binding [Max], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="3" Grid.Column="1" Text="{Binding MaxX_S, StringFormat=F3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Min-->
<TextBlock Grid.Row="4" Grid.Column="0" Text="{Binding [Min], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="4" Grid.Column="1" Text="{Binding MinX_S, StringFormat=F3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Range-->
<TextBlock Grid.Row="5" Grid.Column="0" Text="{Binding [Range], Source={StaticResource langTokens}, Mode=OneWay}"
FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<TextBox Grid.Row="5" Grid.Column="1" Text="{Binding RangeX_S, StringFormat=F3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<TextBlock Grid.Row="0" Grid.Column="2" Text="" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource styleTextBlockTitleSmall}" />
<!--Mean-->
<TextBox Grid.Row="1" Grid.Column="2" Text="{Binding MeanY_S, StringFormat=F3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Standard-->
<TextBox Grid.Row="2" Grid.Column="2" Text="{Binding SdY_S, StringFormat=F3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Max-->
<TextBox Grid.Row="3" Grid.Column="2" Text="{Binding MaxY_S, StringFormat=F3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Min-->
<TextBox Grid.Row="4" Grid.Column="2" Text="{Binding MinY_S, StringFormat=F3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
<!--Range-->
<TextBox Grid.Row="5" Grid.Column="2" Text="{Binding RangeY_S, StringFormat=F3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource styleTextBoxVerySmall}"/>
</Grid>
</Grid>
</GroupBox>
</Grid>
</Grid>
</Grid>
</UserControl>