| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <UserControl x:Class="Plugins.Standard.Views.ImageAcqView"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:loc="clr-namespace:TeamAAS.Localization;assembly=TeamAAS.Global"
- xmlns:camui="clr-namespace:TeamAAS.Camera.UI.Controls;assembly=TeamAAS.Camera"
- Background="{DynamicResource SecondaryRegionBrush}">
- <DockPanel>
- <!-- 顶部工具栏 -->
- <Border DockPanel.Dock="Top" Height="36"
- Background="{DynamicResource RegionBrush}"
- BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,0,0,1">
- <Grid>
- <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="8,0">
- <TextBlock Text="{loc:Translate '图像采集'}" FontSize="14" FontWeight="Bold"
- Foreground="{DynamicResource PrimaryTextBrush}" VerticalAlignment="Center" Margin="0,0,16,0"/>
- <TextBlock x:Name="TxtSourceTag" Text="" FontSize="12"
- Foreground="{DynamicResource SecondaryTextBrush}" VerticalAlignment="Center"/>
- </StackPanel>
- <Button x:Name="BtnProperties" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0"
- Width="Auto" Height="Auto" Cursor="Hand"
- Background="Transparent" BorderThickness="0"
- Tag="{loc:Translate '打开图像采集参数设置(曝光/增益/Gamma 公式绑定等)'}"
- Click="BtnProperties_Click">
- <Path Data="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.97,5.03C9.38,5.27,8.85,5.59,8.35,5.97L5.96,5.01C5.73,4.92,5.49,5.01,5.37,5.23L3.45,8.55 c-0.12,0.21-0.08,0.47,0.12,0.61l2.03,1.58C5.55,11.04,5.53,11.36,5.53,11.69c0,0.32,0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.37,2.22 c0.04,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.43-0.17,0.47-0.41l0.37-2.22c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.75c-2.07,0-3.75-1.68-3.75-3.75 c0-2.07,1.68-3.75,3.75-3.75c2.07,0,3.75,1.68,3.75,3.75C15.75,14.07,14.07,15.75,12,15.75z"
- Width="22" Height="22" Stretch="Uniform"
- Fill="{DynamicResource PrimaryTextBrush}"/>
- </Button>
- </Grid>
- </Border>
- <!-- 主体:左侧配置 + 右侧预览 -->
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="330" MinWidth="260"/>
- <ColumnDefinition Width="4"/>
- <ColumnDefinition Width="*"/>
- </Grid.ColumnDefinitions>
- <!-- 左侧配置面板 -->
- <ScrollViewer Grid.Column="0" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
- <StackPanel Margin="8">
- <!-- 图像来源 -->
- <GroupBox Header="{loc:Translate '图像来源'}" Margin="0,0,0,8">
- <StackPanel Margin="4">
- <RadioButton x:Name="RbCamera" Content="{loc:Translate '相机采集'}" GroupName="Src"
- Margin="2,4" Click="Source_Changed"
- Foreground="{DynamicResource PrimaryTextBrush}"/>
- <RadioButton x:Name="RbFile" Content="{loc:Translate '本地图像'}" GroupName="Src"
- Margin="2,4" Click="Source_Changed"
- Foreground="{DynamicResource PrimaryTextBrush}"/>
- <RadioButton x:Name="RbDir" Content="{loc:Translate '本地目录'}" GroupName="Src"
- Margin="2,4" Click="Source_Changed"
- Foreground="{DynamicResource PrimaryTextBrush}"/>
- </StackPanel>
- </GroupBox>
- <!-- 相机采集 -->
- <GroupBox x:Name="PanelCamera" Header="{loc:Translate '相机采集'}" Margin="0,0,0,8">
- <StackPanel Margin="4">
- <TextBlock Text="{loc:Translate '相机设备'}" Margin="2,4,2,2" Foreground="{DynamicResource SecondaryTextBrush}"/>
- <ComboBox x:Name="CmbCamera" Margin="2,0,2,6" SelectionChanged="CmbCamera_SelectionChanged"/>
- <TextBlock Text="{loc:Translate '触发模式'}" Margin="2,4,2,2" Foreground="{DynamicResource SecondaryTextBrush}"/>
- <ComboBox x:Name="CmbTrigger" Margin="2,0,2,2" SelectionChanged="CmbTrigger_SelectionChanged"
- Tag="{loc:Translate '跟随相机=不改相机触发设置;连续采集=自由运行;软触发=每次取相发软件命令;硬触发=等外部信号'}"/>
- <TextBlock x:Name="TxtTriggerHint" Margin="2,0,2,6" TextWrapping="Wrap" FontSize="11"
- Foreground="{DynamicResource SecondaryTextBrush}"/>
- <TextBlock Text="{loc:Translate '曝光时间(us)'}" Margin="2,4,2,2" Foreground="{DynamicResource SecondaryTextBrush}"/>
- <TextBox x:Name="TxtExposure" Margin="2,0,2,6"
- Text="{Binding ExposureTime.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=10000}"/>
- <TextBlock Text="{loc:Translate '增益(dB)'}" Margin="2,4,2,2" Foreground="{DynamicResource SecondaryTextBrush}"/>
- <TextBox x:Name="TxtGain" Margin="2,0,2,6"
- Text="{Binding Gain.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=0}"/>
- <TextBlock Text="Gamma" Margin="2,4,2,2" Foreground="{DynamicResource SecondaryTextBrush}"/>
- <TextBox x:Name="TxtGamma" Margin="2,0,2,6"
- Text="{Binding Gamma.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=1.0}"/>
- <CheckBox x:Name="ChkAutoOpen" Content="{loc:Translate '自动打开设备'}" Margin="2,6,2,6"
- IsChecked="{Binding AutoOpen, Mode=TwoWay}"
- Foreground="{DynamicResource PrimaryTextBrush}"/>
- <Button x:Name="BtnGrab" Content="{loc:Translate '采集预览'}" Margin="2,4,2,2" Padding="10,5"
- HorizontalAlignment="Left" Click="BtnGrabPreview_Click"
- Tag="{loc:Translate '从所选相机采集一帧并显示(等价于点击窗体底部「执行」)'}"/>
- </StackPanel>
- </GroupBox>
- <!-- 本地图像 -->
- <GroupBox x:Name="PanelFile" Header="{loc:Translate '本地图像'}" Margin="0,0,0,8" Visibility="Collapsed">
- <StackPanel Margin="4">
- <TextBlock Text="{loc:Translate '图像文件'}" Margin="2,4,2,2" Foreground="{DynamicResource SecondaryTextBrush}"/>
- <DockPanel Margin="2,0,2,4">
- <Button DockPanel.Dock="Right" Content="{loc:Translate '浏览'}" Width="60" Margin="4,0,0,0"
- Padding="4,4" Click="BtnBrowseFile_Click"/>
- <TextBox x:Name="TxtImagePath"
- Text="{Binding LocalImagePath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
- </DockPanel>
- <TextBlock Text="{loc:Translate '选择文件后立即预览;也可将图片拖放到右侧画面'}" Margin="2,2"
- TextWrapping="Wrap" FontSize="11" Foreground="{DynamicResource SecondaryTextBrush}"/>
- </StackPanel>
- </GroupBox>
- <!-- 本地目录 -->
- <GroupBox x:Name="PanelDir" Header="{loc:Translate '本地目录'}" Margin="0,0,0,8" Visibility="Collapsed">
- <StackPanel Margin="4">
- <TextBlock Text="{loc:Translate '图像目录'}" Margin="2,4,2,2" Foreground="{DynamicResource SecondaryTextBrush}"/>
- <DockPanel Margin="2,0,2,4">
- <Button DockPanel.Dock="Right" Content="{loc:Translate '浏览'}" Width="60" Margin="4,0,0,0"
- Padding="4,4" Click="BtnBrowseDir_Click"/>
- <TextBox x:Name="TxtDirPath"
- Text="{Binding LocalImageDir, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
- </DockPanel>
- <CheckBox x:Name="ChkCyclic" Content="{loc:Translate '循环读取'}" Margin="2,4,2,4"
- IsChecked="{Binding CyclicRead, Mode=TwoWay}"
- Foreground="{DynamicResource PrimaryTextBrush}"/>
- <TextBlock Text="{loc:Translate '目录内图像(双击预览)'}" Margin="2,4,2,2" Foreground="{DynamicResource SecondaryTextBrush}"/>
- <ListBox x:Name="LstDirFiles" Height="150" Margin="2,0,2,4"
- MouseDoubleClick="LstDirFiles_MouseDoubleClick"/>
- </StackPanel>
- </GroupBox>
- <!-- 本地图像选项(文件/目录共用) -->
- <GroupBox x:Name="PanelLocalOpts" Header="{loc:Translate '本地图像选项'}" Margin="0,0,0,8" Visibility="Collapsed">
- <StackPanel Margin="4">
- <CheckBox x:Name="ChkApplyGamma" Content="{loc:Translate '应用 Gamma 校正'}" Margin="2,4"
- IsChecked="{Binding ApplyGamma, Mode=TwoWay}"
- Foreground="{DynamicResource PrimaryTextBrush}"/>
- <TextBlock Text="{loc:Translate '相机采集由相机硬件处理 Gamma,此项仅作用于本地加载的图像'}"
- Margin="2,2" TextWrapping="Wrap" FontSize="11"
- Foreground="{DynamicResource SecondaryTextBrush}"/>
- </StackPanel>
- </GroupBox>
- </StackPanel>
- </ScrollViewer>
- <GridSplitter Grid.Column="1" Width="4" HorizontalAlignment="Stretch"
- Background="{DynamicResource BorderBrush}"/>
- <!-- 右侧图像预览 -->
- <Grid Grid.Column="2">
- <Grid.RowDefinitions>
- <RowDefinition Height="*"/>
- <RowDefinition Height="Auto"/>
- </Grid.RowDefinitions>
- <camui:ImageDisplayControl x:Name="Display" Grid.Row="0" Margin="4"/>
- <Border Grid.Row="1" Background="{DynamicResource RegionBrush}"
- BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,1,0,0" Padding="8,4">
- <TextBlock x:Name="TxtInfo" Text="{loc:Translate '尚未采集图像'}"
- Foreground="{DynamicResource SecondaryTextBrush}" FontSize="12"
- TextTrimming="CharacterEllipsis"/>
- </Border>
- </Grid>
- </Grid>
- </DockPanel>
- </UserControl>
|