#0060: 增加扫描模式模块功能;

This commit is contained in:
TianSong
2026-04-17 15:31:38 +08:00
parent ad19742a3d
commit 4390ad1e9f
16 changed files with 1039 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
<Window x:Class="XP.Scan.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:prism="http://prismlibrary.com/"
prism:ViewModelLocator.AutoWireViewModel="True"
Title="{Binding Title}" Height="450" Width="650"
WindowStartupLocation="CenterScreen">
<ContentControl prism:RegionManager.RegionName="ContentRegion" />
</Window>
+15
View File
@@ -0,0 +1,15 @@
using System.Windows;
namespace XP.Scan.Views
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
+123
View File
@@ -0,0 +1,123 @@
<UserControl x:Class="XP.Scan.Views.XPScanView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:prism="http://prismlibrary.com/"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
prism:ViewModelLocator.AutoWireViewModel="True">
<UserControl.Resources>
<Style TargetType="Button" x:Key="ActionButtonStyle">
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="32"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="Padding" Value="10,5"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="8">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="border" Property="Background" Value="LightGray"/>
<Setter TargetName="border" Property="Opacity" Value="0.5"/>
<Setter Property="Foreground" Value="Gray"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Opacity" Value="0.8"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="border" Property="Opacity" Value="0.6"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 第一行 - 采集模式 -->
<TextBlock Grid.Row="0" Grid.Column="0"
Text="{Binding LabelScanMode}"
VerticalAlignment="Center" Margin="5" FontWeight="Bold"/>
<telerik:RadComboBox Grid.Row="0" Grid.Column="1" Margin="5"
ItemsSource="{Binding AcquisitionModes}"
SelectedItem="{Binding SelectedAcquisitionMode}"
DisplayMemberPath="Name"
VerticalAlignment="Center"/>
<!-- 第一行 - 帧合并 -->
<TextBlock Grid.Row="0" Grid.Column="2"
Text="{Binding LabelFrameMerge}"
VerticalAlignment="Center" Margin="5" FontWeight="Bold"/>
<telerik:RadNumericUpDown Grid.Row="0" Grid.Column="3" Margin="5"
Value="{Binding MergeLevel}"
Minimum="1" Maximum="100" SmallChange="1"
IsInteger="True" VerticalAlignment="Center"/>
<!-- 第二行 - 采集张数 -->
<TextBlock Grid.Row="1" Grid.Column="0"
Text="{Binding LabelNums}"
VerticalAlignment="Center" Margin="5" FontWeight="Bold"/>
<telerik:RadNumericUpDown Grid.Row="1" Grid.Column="1" Margin="5"
Value="{Binding AcquisitionCount}"
Minimum="360" Maximum="3600" SmallChange="1"
IsInteger="True" VerticalAlignment="Center"/>
<!-- 第二行 - 旋转角度 -->
<TextBlock Grid.Row="1" Grid.Column="2"
Text="{Binding LabelAngles}"
VerticalAlignment="Center" Margin="5" FontWeight="Bold"/>
<telerik:RadNumericUpDown Grid.Row="1" Grid.Column="3" Margin="5"
Value="{Binding RotationAngle}"
Minimum="180" Maximum="360" SmallChange="1"
IsInteger="True" VerticalAlignment="Center"/>
<!-- 第三行 - 采集进度 -->
<TextBlock Grid.Row="2" Grid.Column="0"
Text="{Binding LabelProgress}"
VerticalAlignment="Center" Margin="5" FontWeight="Bold"/>
<ProgressBar Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3"
Margin="5" Minimum="0" Maximum="100"
Value="{Binding AcquisitionProgress}"
Height="25" VerticalAlignment="Center"/>
<!-- 第四行 - 按钮 -->
<StackPanel Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="4"
Orientation="Horizontal" HorizontalAlignment="Center"
Margin="0,10,0,0">
<Button Content="{Binding LabelStart}"
Style="{StaticResource ActionButtonStyle}"
Command="{Binding StartAcquisitionCommand}"
IsEnabled="{Binding CanStartAcquisition}"
Background="LightGreen"/>
<Button Content="{Binding LabelStop}"
Style="{StaticResource ActionButtonStyle}"
Command="{Binding StopAcquisitionCommand}"
IsEnabled="{Binding CanStopAcquisition}"
Background="LightCoral"/>
</StackPanel>
</Grid>
</UserControl>
+12
View File
@@ -0,0 +1,12 @@
using System.Windows.Controls;
namespace XP.Scan.Views
{
public partial class XPScanView : UserControl
{
public XPScanView()
{
InitializeComponent();
}
}
}