AddPlc.xaml 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <UserControl x:Class="TeamAAS_VP.Views.Setting.AddPlc"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:prism="http://prismlibrary.com/"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  7. xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
  8. xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
  9. xmlns:sys="clr-namespace:System;assembly=mscorlib"
  10. xmlns:enums="clr-namespace:TeamAAS_VP.Enums"
  11. xmlns:convert="clr-namespace:TeamAAS_VP.ValueConverter"
  12. xmlns:valRules="clr-namespace:TeamAAS_VP.Identity"
  13. xmlns:validationRule="clr-namespace:TeamAAS_VP.ValidationRules"
  14. xmlns:ext="clr-namespace:TeamAAS_VP.Extension"
  15. xmlns:lex="http://wpflocalizeextension.codeplex.com"
  16. xmlns:vm="clr-namespace:TeamAAS_VP.ViewModels.Setting"
  17. lex:LocalizeDictionary.DesignCulture="zh-CN"
  18. lex:ResxLocalizationProvider.DefaultAssembly="TeamAAS-VP"
  19. lex:ResxLocalizationProvider.DefaultDictionary="Lang"
  20. mc:Ignorable="d"
  21. d:Background="White"
  22. d:DataContext="{d:DesignInstance Type=vm:AddPlcViewModel}"
  23. prism:ViewModelLocator.AutoWireViewModel="True"
  24. FontFamily="{DynamicResource DefaultFont}">
  25. <prism:Dialog.WindowStyle>
  26. <Style TargetType="Window">
  27. <Setter Property="prism:Dialog.WindowStartupLocation"
  28. Value="CenterScreen" />
  29. <!--<Setter Property="WindowChrome.WindowChrome">
  30. <Setter.Value>
  31. <WindowChrome CaptionHeight="0"
  32. ResizeBorderThickness="1" />
  33. </Setter.Value>
  34. </Setter>-->
  35. <Setter Property="WindowStyle"
  36. Value="None" />
  37. <Setter Property="AllowDrop"
  38. Value="True" />
  39. <Setter Property="BorderThickness"
  40. Value="0" />
  41. <Setter Property="ShowInTaskbar"
  42. Value="False" />
  43. <Setter Property="SizeToContent"
  44. Value="WidthAndHeight" />
  45. <Setter Property="WindowState"
  46. Value="Normal" />
  47. <Setter Property="Topmost"
  48. Value="True" />
  49. </Style>
  50. </prism:Dialog.WindowStyle>
  51. <Grid HorizontalAlignment="Center">
  52. <Grid.RowDefinitions>
  53. <RowDefinition Height="*" />
  54. <RowDefinition Height="50" />
  55. </Grid.RowDefinitions>
  56. <!--参数详情-->
  57. <Grid Margin="20,20">
  58. <Grid.RowDefinitions>
  59. <RowDefinition MinHeight="50"/>
  60. <RowDefinition MinHeight="50"/>
  61. <RowDefinition MinHeight="50"/>
  62. <RowDefinition MinHeight="50" />
  63. <RowDefinition MinHeight="50" />
  64. </Grid.RowDefinitions>
  65. <Grid.ColumnDefinitions>
  66. <ColumnDefinition Width="50*" />
  67. <ColumnDefinition Width="50*" />
  68. </Grid.ColumnDefinitions>
  69. <!--id-->
  70. <TextBlock Text="Id: "
  71. Grid.Row="0"
  72. Grid.Column="0"
  73. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  74. HorizontalAlignment="Right"
  75. VerticalAlignment="Center" />
  76. <TextBlock x:Name="txt_Id"
  77. Text="{Binding SelectedPlc.Id,Mode=TwoWay}"
  78. Grid.Row="0"
  79. Grid.Column="1"
  80. Margin="10,0"
  81. HorizontalAlignment="Left"
  82. VerticalAlignment="Center" />
  83. <!--名称-->
  84. <TextBlock Text="{lex:Loc 名称,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  85. Grid.Row="1"
  86. Grid.Column="0"
  87. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  88. HorizontalAlignment="Right"
  89. VerticalAlignment="Center" />
  90. <TextBox x:Name="txt_Name"
  91. Grid.Row="1"
  92. Grid.Column="1"
  93. Margin="10,0"
  94. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  95. MinWidth="80"
  96. TextAlignment="Center"
  97. HorizontalAlignment="Left"
  98. VerticalAlignment="Center">
  99. <TextBox.Text>
  100. <Binding Path="SelectedPlc.Name"
  101. Mode="TwoWay">
  102. <Binding.ValidationRules>
  103. <valRules:NameValidationRule />
  104. </Binding.ValidationRules>
  105. </Binding>
  106. </TextBox.Text>
  107. </TextBox>
  108. <!--通讯方式-->
  109. <TextBlock Text="{lex:Loc 通讯方式,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  110. Grid.Row="2"
  111. Grid.Column="0"
  112. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  113. HorizontalAlignment="Right"
  114. VerticalAlignment="Center" />
  115. <ComboBox SelectedItem="{Binding SelectedPlc.CommunicationType,Mode=TwoWay}"
  116. Grid.Row="2"
  117. Grid.Column="1"
  118. Margin="10,0"
  119. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  120. MinWidth="80"
  121. HorizontalContentAlignment="Center"
  122. ItemsSource="{ext:EnumBindingSource EnumType=enums:CommunicationType}"
  123. HorizontalAlignment="Left"
  124. VerticalAlignment="Center" />
  125. <!--Endpoint Url地址-->
  126. <TextBlock Text="Endpoint Url: "
  127. Grid.Row="3"
  128. Grid.Column="0"
  129. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  130. HorizontalAlignment="Right"
  131. VerticalAlignment="Center" />
  132. <TextBox Grid.Row="3"
  133. Grid.Column="1"
  134. Margin="10,0"
  135. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  136. MinWidth="80"
  137. TextAlignment="Center"
  138. HorizontalAlignment="Left"
  139. VerticalAlignment="Center"
  140. Text="{Binding SelectedPlc.EndpointUrl}" />
  141. <!--节点头-->
  142. <TextBlock Text="{lex:Loc 节点头, Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  143. Grid.Row="4"
  144. Grid.Column="0"
  145. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  146. FontSize="{DynamicResource Font.Size.Body3}"
  147. HorizontalAlignment="Right"
  148. VerticalAlignment="Center" />
  149. <TextBox Grid.Row="4"
  150. Grid.Column="1"
  151. FontSize="{DynamicResource Font.Size.Body3}"
  152. Margin="10,0"
  153. MinWidth="80"
  154. TextAlignment="Center"
  155. HorizontalAlignment="Left"
  156. VerticalAlignment="Center"
  157. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  158. Text="{Binding SelectedPlc.NodeHeader,Mode=TwoWay}" />
  159. </Grid>
  160. <StackPanel Grid.Row="1"
  161. Orientation="Horizontal"
  162. HorizontalAlignment="Right">
  163. <Button Height="30"
  164. materialDesign:ButtonAssist.CornerRadius="10"
  165. ToolTip="{lex:Loc 确定}"
  166. Command="{Binding ConfirmCommand}">
  167. <TextBlock Text="{lex:Loc 确定}" />
  168. <Button.Style>
  169. <Style TargetType="Button"
  170. BasedOn="{StaticResource MaterialDesignRaisedButton}">
  171. <Style.Triggers>
  172. <MultiDataTrigger>
  173. <MultiDataTrigger.Conditions>
  174. <!-- 当且仅当IP地址合规且其他条件满足时,启用按钮 -->
  175. <Condition Binding="{Binding ElementName=txt_Name, Path=(Validation.HasError)}"
  176. Value="False" />
  177. <Condition Binding="{Binding ElementName=txt_Port, Path=(Validation.HasError)}"
  178. Value="False" />
  179. </MultiDataTrigger.Conditions>
  180. <Setter Property="IsEnabled"
  181. Value="True" />
  182. </MultiDataTrigger>
  183. </Style.Triggers>
  184. </Style>
  185. </Button.Style>
  186. </Button>
  187. <Button Height="30"
  188. Margin="20,0"
  189. materialDesign:ButtonAssist.CornerRadius="10"
  190. Style="{StaticResource MaterialDesignRaisedButton}"
  191. ToolTip="{lex:Loc 取消}"
  192. Command="{Binding CancelCommand}">
  193. <TextBlock Text="{lex:Loc 取消}" />
  194. </Button>
  195. </StackPanel>
  196. </Grid>
  197. </UserControl>