AddScanner.xaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <UserControl x:Class="TeamAAS_VP.Views.Setting.AddScanner"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:TeamAAS_VP.Views.Setting"
  7. xmlns:prism="http://prismlibrary.com/"
  8. prism:ViewModelLocator.AutoWireViewModel="True"
  9. xmlns:enums="clr-namespace:TeamAAS_VP.Enums"
  10. xmlns:sys="clr-namespace:System;assembly=mscorlib"
  11. xmlns:valRules="clr-namespace:TeamAAS_VP.Identity"
  12. xmlns:lex="http://wpflocalizeextension.codeplex.com"
  13. lex:LocalizeDictionary.DesignCulture="zh-CN"
  14. lex:ResxLocalizationProvider.DefaultAssembly="TeamAAS-VP"
  15. lex:ResxLocalizationProvider.DefaultDictionary="Lang"
  16. xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
  17. >
  18. <prism:Dialog.WindowStyle>
  19. <Style TargetType="Window">
  20. <Setter Property="prism:Dialog.WindowStartupLocation"
  21. Value="CenterScreen" />
  22. <Setter Property="WindowStyle"
  23. Value="None" />
  24. <Setter Property="AllowDrop"
  25. Value="True" />
  26. <Setter Property="BorderThickness"
  27. Value="0" />
  28. <Setter Property="ShowInTaskbar"
  29. Value="False" />
  30. <Setter Property="SizeToContent"
  31. Value="WidthAndHeight" />
  32. <Setter Property="WindowState"
  33. Value="Normal" />
  34. <Setter Property="Topmost"
  35. Value="True" />
  36. </Style>
  37. </prism:Dialog.WindowStyle>
  38. <UserControl.Resources>
  39. <ObjectDataProvider x:Key="eRobotBrand"
  40. MethodName="GetNames"
  41. ObjectType="{x:Type sys:Enum}">
  42. <ObjectDataProvider.MethodParameters>
  43. <x:Type TypeName="enums:RobotBrand" />
  44. </ObjectDataProvider.MethodParameters>
  45. </ObjectDataProvider>
  46. <ObjectDataProvider x:Key="eTCPConnectType"
  47. MethodName="GetNames"
  48. ObjectType="{x:Type sys:Enum}">
  49. <ObjectDataProvider.MethodParameters>
  50. <x:Type TypeName="enums:TCPConnectType" />
  51. </ObjectDataProvider.MethodParameters>
  52. </ObjectDataProvider>
  53. <ObjectDataProvider x:Key="eTerminator"
  54. MethodName="GetNames"
  55. ObjectType="{x:Type sys:Enum}">
  56. <ObjectDataProvider.MethodParameters>
  57. <x:Type TypeName="enums:Terminator" />
  58. </ObjectDataProvider.MethodParameters>
  59. </ObjectDataProvider>
  60. <ObjectDataProvider x:Key="eDataEncoding"
  61. MethodName="GetNames"
  62. ObjectType="{x:Type sys:Enum}">
  63. <ObjectDataProvider.MethodParameters>
  64. <x:Type TypeName="enums:DataEncoding" />
  65. </ObjectDataProvider.MethodParameters>
  66. </ObjectDataProvider>
  67. </UserControl.Resources>
  68. <Grid HorizontalAlignment="Center">
  69. <Grid.RowDefinitions>
  70. <RowDefinition Height="*" />
  71. <RowDefinition Height="50" />
  72. </Grid.RowDefinitions>
  73. <!--参数详情-->
  74. <Grid Margin="20,20">
  75. <Grid.RowDefinitions>
  76. <RowDefinition />
  77. <RowDefinition />
  78. <RowDefinition />
  79. <RowDefinition />
  80. <RowDefinition />
  81. <RowDefinition />
  82. <RowDefinition />
  83. <RowDefinition />
  84. </Grid.RowDefinitions>
  85. <Grid.ColumnDefinitions>
  86. <ColumnDefinition Width="50*" />
  87. <ColumnDefinition Width="50*" />
  88. </Grid.ColumnDefinitions>
  89. <!--id-->
  90. <TextBlock Text="Id:"
  91. Grid.Row="0"
  92. Grid.Column="0"
  93. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  94. HorizontalAlignment="Right"
  95. VerticalAlignment="Center" />
  96. <TextBlock x:Name="txt_Id"
  97. Text="{Binding Scanner.Id,Mode=TwoWay}"
  98. Grid.Row="0"
  99. Grid.Column="1"
  100. Margin="10,0"
  101. HorizontalAlignment="Left"
  102. VerticalAlignment="Center" />
  103. <!--名称-->
  104. <TextBlock Text="{lex:Loc 名称}"
  105. Grid.Row="1"
  106. Grid.Column="0"
  107. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  108. HorizontalAlignment="Right"
  109. VerticalAlignment="Center" />
  110. <TextBox x:Name="txt_Name"
  111. Grid.Row="1"
  112. Grid.Column="1"
  113. Margin="10,0"
  114. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  115. MinWidth="80"
  116. TextAlignment="Center"
  117. HorizontalAlignment="Left"
  118. VerticalAlignment="Center">
  119. <TextBox.Text>
  120. <Binding Path="Scanner.ScannerName"
  121. Mode="TwoWay">
  122. <Binding.ValidationRules>
  123. <valRules:NameValidationRule />
  124. </Binding.ValidationRules>
  125. </Binding>
  126. </TextBox.Text>
  127. </TextBox>
  128. <!--通讯方式-->
  129. <TextBlock Text="{lex:Loc 通讯方式}"
  130. Grid.Row="3"
  131. Grid.Column="0"
  132. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  133. HorizontalAlignment="Right"
  134. VerticalAlignment="Center" />
  135. <ComboBox Text="{Binding Scanner.ConnectType,Mode=TwoWay}"
  136. Grid.Row="3"
  137. Grid.Column="1"
  138. Margin="10,0"
  139. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  140. MinWidth="80"
  141. HorizontalContentAlignment="Center"
  142. ItemsSource="{Binding Source={StaticResource eTCPConnectType}}"
  143. HorizontalAlignment="Left"
  144. VerticalAlignment="Center" />
  145. <!--IP地址-->
  146. <TextBlock Text="IP:"
  147. Grid.Row="4"
  148. Grid.Column="0"
  149. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  150. HorizontalAlignment="Right"
  151. VerticalAlignment="Center" />
  152. <TextBox x:Name="txt_IP"
  153. Grid.Row="4"
  154. Grid.Column="1"
  155. Margin="10,0"
  156. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  157. MinWidth="80"
  158. TextAlignment="Center"
  159. HorizontalAlignment="Left"
  160. VerticalAlignment="Center">
  161. <TextBox.Text>
  162. <Binding Path="Scanner.IP"
  163. Mode="TwoWay">
  164. <Binding.ValidationRules>
  165. <valRules:IPValidationRule />
  166. </Binding.ValidationRules>
  167. </Binding>
  168. </TextBox.Text>
  169. </TextBox>
  170. <!--端口号-->
  171. <TextBlock Text="Port:"
  172. Grid.Row="5"
  173. Grid.Column="0"
  174. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  175. HorizontalAlignment="Right"
  176. VerticalAlignment="Center" />
  177. <TextBox x:Name="txt_Port"
  178. Grid.Row="5"
  179. Grid.Column="1"
  180. Margin="10,0"
  181. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  182. MinWidth="80"
  183. TextAlignment="Center"
  184. HorizontalAlignment="Left"
  185. VerticalAlignment="Center">
  186. <TextBox.Text>
  187. <Binding Path="Scanner.Port"
  188. Mode="TwoWay">
  189. <Binding.ValidationRules>
  190. <valRules:PortValidationRule />
  191. </Binding.ValidationRules>
  192. </Binding>
  193. </TextBox.Text>
  194. </TextBox>
  195. <!--结束符-->
  196. <TextBlock Text="{lex:Loc 结束符}"
  197. Grid.Row="6"
  198. Grid.Column="0"
  199. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  200. HorizontalAlignment="Right"
  201. VerticalAlignment="Center" />
  202. <ComboBox Text="{Binding Scanner.Terminator,Mode=TwoWay}"
  203. Grid.Row="6"
  204. Grid.Column="1"
  205. Margin="10,0"
  206. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  207. MinWidth="80"
  208. HorizontalContentAlignment="Center"
  209. ItemsSource="{Binding Source={StaticResource eTerminator}}"
  210. HorizontalAlignment="Left"
  211. VerticalAlignment="Center" />
  212. </Grid>
  213. <StackPanel Grid.Row="1"
  214. Orientation="Horizontal"
  215. HorizontalAlignment="Right">
  216. <Button Height="30"
  217. materialDesign:ButtonAssist.CornerRadius="10"
  218. ToolTip="{lex:Loc 确定}"
  219. Command="{Binding ConfirmCommand}">
  220. <TextBlock Text="{lex:Loc 确定}" />
  221. <Button.Style>
  222. <Style TargetType="Button"
  223. BasedOn="{StaticResource MaterialDesignRaisedButton}">
  224. <Style.Triggers>
  225. <MultiDataTrigger>
  226. <MultiDataTrigger.Conditions>
  227. <!-- 当且仅当IP地址合规且其他条件满足时,启用按钮 -->
  228. <Condition Binding="{Binding ElementName=txt_IP, Path=(Validation.HasError)}"
  229. Value="False" />
  230. <Condition Binding="{Binding ElementName=txt_Name, Path=(Validation.HasError)}"
  231. Value="False" />
  232. <Condition Binding="{Binding ElementName=txt_Port, Path=(Validation.HasError)}"
  233. Value="False" />
  234. </MultiDataTrigger.Conditions>
  235. <Setter Property="IsEnabled"
  236. Value="True" />
  237. </MultiDataTrigger>
  238. </Style.Triggers>
  239. </Style>
  240. </Button.Style>
  241. </Button>
  242. <Button Height="30"
  243. Margin="20,0"
  244. materialDesign:ButtonAssist.CornerRadius="10"
  245. Style="{StaticResource MaterialDesignRaisedButton}"
  246. ToolTip="{lex:Loc 取消}"
  247. Command="{Binding CancelCommand}">
  248. <TextBlock Text="{lex:Loc 取消}" />
  249. </Button>
  250. </StackPanel>
  251. </Grid>
  252. </UserControl>