285 lines
16 KiB
XML
285 lines
16 KiB
XML
<Window x:Class="MainModule.Views.ConnectionConfigView"
|
|
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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
|
xmlns:prism="http://prismlibrary.com/"
|
|
xmlns:converters="clr-namespace:UIShare.Converters;assembly=UIShare"
|
|
Title="设备连接配置"
|
|
Width="520"
|
|
Height="550"
|
|
MinWidth="400"
|
|
MinHeight="450"
|
|
WindowStartupLocation="CenterOwner"
|
|
ResizeMode="CanResize">
|
|
<Window.Resources>
|
|
<converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
|
|
<Style TargetType="TextBlock" x:Key="LabelStyle">
|
|
<Setter Property="FontSize" Value="13"/>
|
|
<Setter Property="Foreground" Value="#4A5568"/>
|
|
<Setter Property="Margin" Value="0,6,0,2"/>
|
|
</Style>
|
|
<Style TargetType="TextBox" x:Key="InputStyle">
|
|
<Setter Property="Padding" Value="8"/>
|
|
<Setter Property="Margin" Value="0,2,0,6"/>
|
|
<Setter Property="BorderBrush" Value="#E2E8F0"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="FontSize" Value="13"/>
|
|
</Style>
|
|
<Style TargetType="ComboBox" x:Key="ComboStyle">
|
|
<Setter Property="Padding" Value="8"/>
|
|
<Setter Property="Margin" Value="0,2,0,6"/>
|
|
<Setter Property="BorderBrush" Value="#E2E8F0"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="FontSize" Value="13"/>
|
|
</Style>
|
|
</Window.Resources>
|
|
|
|
<Grid Background="White">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Text="设备连接配置" FontSize="18" FontWeight="Bold" Foreground="#2C3E50" Margin="20,20,20,16"/>
|
|
|
|
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" Margin="20">
|
|
<StackPanel>
|
|
<TextBlock Text="选择协议类型" Style="{StaticResource LabelStyle}"/>
|
|
<StackPanel Orientation="Horizontal" Margin="0,2,0,6">
|
|
<Button Content="S7"
|
|
Command="{Binding SelectS7Command}"
|
|
Width="80" Height="36"
|
|
Margin="0,0,4,0"/>
|
|
<Button Content="Modbus TCP"
|
|
Command="{Binding SelectModbusTCPCommand}"
|
|
Width="100" Height="36"
|
|
Margin="0,0,4,0"/>
|
|
<Button Content="Modbus RTU"
|
|
Command="{Binding SelectModbusRTUCommand}"
|
|
Width="100" Height="36"
|
|
Margin="0,0,4,0"/>
|
|
<Button Content="TCP"
|
|
Command="{Binding SelectTCPCommand}"
|
|
Width="80" Height="36"
|
|
Margin="0,0,4,0"/>
|
|
<Button Content="HTTP"
|
|
Command="{Binding SelectHTTPCommand}"
|
|
Width="80" Height="36"/>
|
|
</StackPanel>
|
|
|
|
<Border Visibility="{Binding IsS7Protocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
|
<StackPanel>
|
|
<TextBlock Text="S7协议配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="IP地址" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding IpAddress}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="CPU类型" Style="{StaticResource LabelStyle}"/>
|
|
<ComboBox Grid.Column="1" ItemsSource="{Binding CpuTypes}"
|
|
SelectedItem="{Binding CpuType}" Style="{StaticResource ComboStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="Rack" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding Rack}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="Slot" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding Slot}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<Border Visibility="{Binding IsModbusTCPProtocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
|
<StackPanel>
|
|
<TextBlock Text="Modbus TCP配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="IP地址" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding IpAddress}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="端口号" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding Port}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<Border Visibility="{Binding IsModbusRTUProtocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
|
<StackPanel>
|
|
<TextBlock Text="Modbus RTU配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="串口" Style="{StaticResource LabelStyle}"/>
|
|
<ComboBox Grid.Column="1" ItemsSource="{Binding SerialPorts}"
|
|
SelectedItem="{Binding SerialPort}" Style="{StaticResource ComboStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="波特率" Style="{StaticResource LabelStyle}"/>
|
|
<ComboBox Grid.Column="1" ItemsSource="{Binding BaudRates}"
|
|
SelectedItem="{Binding BaudRate}" Style="{StaticResource ComboStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="数据位" Style="{StaticResource LabelStyle}"/>
|
|
<ComboBox Grid.Column="1" ItemsSource="{Binding DataBitsList}"
|
|
SelectedItem="{Binding DataBits}" Style="{StaticResource ComboStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="校验位" Style="{StaticResource LabelStyle}"/>
|
|
<ComboBox Grid.Column="1" ItemsSource="{Binding ParityList}"
|
|
SelectedItem="{Binding Parity}" Style="{StaticResource ComboStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="停止位" Style="{StaticResource LabelStyle}"/>
|
|
<ComboBox Grid.Column="1" ItemsSource="{Binding StopBitsList}"
|
|
SelectedItem="{Binding StopBits}" Style="{StaticResource ComboStyle}"/>
|
|
</Grid>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<Border Visibility="{Binding IsTCPProtocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
|
<StackPanel>
|
|
<TextBlock Text="TCP配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="IP地址" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding IpAddress}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="端口号" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding Port}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<Border Visibility="{Binding IsHTTPProtocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
|
<StackPanel>
|
|
<TextBlock Text="HTTP配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="IP地址" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding IpAddress}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="端口号" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding Port}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<Border BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
|
<StackPanel>
|
|
<TextBlock Text="超时设置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="发送超时(ms)" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding SendTimeout}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="接收超时(ms)" Style="{StaticResource LabelStyle}"/>
|
|
<TextBox Grid.Column="1" Text="{Binding ReceiveTimeout}" Style="{StaticResource InputStyle}"/>
|
|
</Grid>
|
|
</StackPanel>
|
|
</Border>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
|
|
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="20,16,20,20">
|
|
<Button Content="取消"
|
|
Command="{Binding CancelCommand}"
|
|
Width="80" Height="36"
|
|
Margin="0,0,8,0"/>
|
|
<Button Content="确定"
|
|
Command="{Binding ConfirmCommand}"
|
|
Width="80" Height="36"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Window> |