Files
DMS/DMS.WPF/Views/Dialogs/MqttDialog.xaml

154 lines
6.0 KiB
Plaintext
Raw Normal View History

<ui:ContentDialog
x:Class="DMS.WPF.Views.Dialogs.MqttDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:enums="clr-namespace:DMS.Core.Enums;assembly=DMS.Core"
xmlns:ex="clr-namespace:DMS.Extensions"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:valueConverts="clr-namespace:DMS.WPF.ValueConverts"
xmlns:vmd="clr-namespace:DMS.WPF.ViewModels.Dialogs"
Title="{Binding Title}"
d:DataContext="{d:DesignInstance vmd:MqttDialogViewModel}"
CloseButtonCommand="{Binding CancelButtonCommand}"
CloseButtonText="取消"
DefaultButton="Primary"
PrimaryButtonCommand="{Binding PrimaryButtonCommand}"
PrimaryButtonText="{Binding PrimaryButText}"
mc:Ignorable="d">
<ui:ContentDialog.Resources>
<ex:EnumBindingSource x:Key="mqttPlatform" EnumType="{x:Type enums:MqttPlatform}" />
<valueConverts:EnumDescriptionConverter x:Key="EnumDescriptionConverter" />
2025-09-06 12:03:39 +08:00
<Style x:Key="LabelStyle" TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Right" />
<Setter Property="Margin" Value="0,0,10,0" />
</Style>
</ui:ContentDialog.Resources>
2025-09-06 12:03:39 +08:00
<StackPanel Margin="16">
<!-- 基本信息 -->
2025-09-06 12:03:39 +08:00
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
2025-09-10 18:15:31 +08:00
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
2025-09-06 12:03:39 +08:00
</Grid.RowDefinitions>
<!-- Row 0 -->
2025-09-06 12:03:39 +08:00
<hc:TextBox
Grid.Row="0"
Grid.Column="0"
hc:InfoElement.Title="MQTT名称:"
Text="{Binding MqttServer.ServerName, UpdateSourceTrigger=PropertyChanged}" />
2025-09-06 12:03:39 +08:00
<hc:TextBox
Grid.Row="0"
Grid.Column="2"
hc:InfoElement.Title="客户端ID:"
Text="{Binding MqttServer.ClientId, UpdateSourceTrigger=PropertyChanged}" />
2025-09-06 12:03:39 +08:00
<hc:TextBox
Grid.Row="1"
Grid.Column="0"
Margin="0,15,0,0"
hc:InfoElement.Title="服务器地址:"
2025-09-06 12:03:39 +08:00
Text="{Binding MqttServer.ServerUrl, UpdateSourceTrigger=PropertyChanged}" />
2025-07-04 23:53:15 +08:00
2025-09-06 12:03:39 +08:00
<hc:TextBox
Grid.Row="1"
Grid.Column="2"
Margin="0,15,0,0"
hc:InfoElement.Title="端口:"
Text="{Binding MqttServer.Port, UpdateSourceTrigger=PropertyChanged}" />
<!-- Row 2 -->
2025-09-06 12:03:39 +08:00
<hc:TextBox
Grid.Row="2"
Grid.Column="0"
Margin="0,15,0,0"
hc:InfoElement.Title="用户名:"
Text="{Binding MqttServer.Username, UpdateSourceTrigger=PropertyChanged}" />
2025-09-06 12:03:39 +08:00
<hc:TextBox
Grid.Row="2"
Grid.Column="2"
Margin="0,15,0,0"
hc:InfoElement.Title="密码:"
Text="{Binding MqttServer.Password, UpdateSourceTrigger=PropertyChanged}" />
<!-- Row 3 -->
2025-09-06 12:03:39 +08:00
<hc:TextBox
Grid.Row="3"
Grid.Column="0"
Margin="0,15,0,0"
hc:InfoElement.Title="发布主题:"
Text="{Binding MqttServer.PublishTopic, UpdateSourceTrigger=PropertyChanged}" />
2025-09-06 12:03:39 +08:00
<hc:TextBox
Grid.Row="3"
Grid.Column="2"
Margin="0,15,0,0"
hc:InfoElement.Title="订阅主题:"
Text="{Binding MqttServer.SubscribeTopic, UpdateSourceTrigger=PropertyChanged}" />
<!-- Row 5 -->
2025-09-10 18:15:31 +08:00
<hc:TextBox
Grid.Row="4"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="0,15,0,0"
VerticalContentAlignment="Top"
hc:InfoElement.Title="消息头:可以使用{timestamp}表示时间戳"
2025-09-10 18:15:31 +08:00
AcceptsReturn="True"
Text="{Binding MqttServer.MessageHeader, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap" />
2025-09-10 18:15:31 +08:00
<hc:TextBox
Grid.Row="5"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="0,15,0,0"
VerticalContentAlignment="Top"
hc:InfoElement.Title="消息内容:可以使用,{name}表示变量名,{value}表示变量值"
2025-09-10 18:15:31 +08:00
AcceptsReturn="True"
Text="{Binding MqttServer.MessageContent, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap" />
<!-- Row 6 -->
2025-09-10 18:15:31 +08:00
<hc:TextBox
Grid.Row="6"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="0,15,0,0"
VerticalContentAlignment="Top"
2025-09-10 18:15:31 +08:00
hc:InfoElement.Title="消息尾:"
AcceptsReturn="True"
Text="{Binding MqttServer.MessageFooter, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap" />
<!-- Row 4 -->
2025-09-06 12:03:39 +08:00
<CheckBox
2025-09-10 18:15:31 +08:00
Grid.Row="7"
2025-09-06 12:03:39 +08:00
Grid.Column="0"
Margin="0,20,0,0"
Content="是否启用"
IsChecked="{Binding MqttServer.IsActive}" />
</Grid>
</StackPanel>
</ui:ContentDialog>