AddRobot.xaml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. <UserControl x:Class="TeamAAS_VP.Views.Setting.AddRobot"
  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:valRules="clr-namespace:TeamAAS_VP.Identity"
  12. xmlns:ext="clr-namespace:TeamAAS_VP.Extension"
  13. xmlns:c="clr-namespace:TeamAAS_VP.ValueConverter"
  14. xmlns:lex="http://wpflocalizeextension.codeplex.com"
  15. xmlns:vm="clr-namespace:TeamAAS_VP.ViewModels.Setting"
  16. lex:LocalizeDictionary.DesignCulture="zh-CN"
  17. lex:ResxLocalizationProvider.DefaultAssembly="TeamAAS-VP"
  18. lex:ResxLocalizationProvider.DefaultDictionary="Lang"
  19. mc:Ignorable="d"
  20. d:Background="White"
  21. d:DataContext="{d:DesignInstance Type=vm:AddRobotViewModel}"
  22. prism:ViewModelLocator.AutoWireViewModel="True"
  23. FontFamily="{DynamicResource DefaultFont}">
  24. <prism:Dialog.WindowStyle>
  25. <Style TargetType="Window">
  26. <Setter Property="prism:Dialog.WindowStartupLocation"
  27. Value="CenterScreen" />
  28. <!--<Setter Property="WindowChrome.WindowChrome">
  29. <Setter.Value>
  30. <WindowChrome CaptionHeight="0"
  31. ResizeBorderThickness="1" />
  32. </Setter.Value>
  33. </Setter>-->
  34. <Setter Property="WindowStyle"
  35. Value="None" />
  36. <Setter Property="AllowDrop"
  37. Value="True" />
  38. <Setter Property="BorderThickness"
  39. Value="0" />
  40. <Setter Property="ShowInTaskbar"
  41. Value="False" />
  42. <Setter Property="SizeToContent"
  43. Value="WidthAndHeight" />
  44. <Setter Property="WindowState"
  45. Value="Normal" />
  46. <Setter Property="Topmost"
  47. Value="True" />
  48. </Style>
  49. </prism:Dialog.WindowStyle>
  50. <UserControl.Resources>
  51. <c:RobotBrandToVisibiltyConverter x:Key="RobotBrandToVisibiltyConverter" />
  52. <c:RobotBrandToVisibiltyConverter x:Key="RobotBrandToVisibiltyConverterInverse"
  53. Inverse="True" />
  54. </UserControl.Resources>
  55. <Grid HorizontalAlignment="Center">
  56. <Grid.RowDefinitions>
  57. <RowDefinition Height="*" />
  58. <RowDefinition Height="50" />
  59. </Grid.RowDefinitions>
  60. <!--参数详情-->
  61. <Grid Margin="20,20">
  62. <Grid.RowDefinitions>
  63. <RowDefinition />
  64. <RowDefinition />
  65. <RowDefinition />
  66. <RowDefinition />
  67. <RowDefinition />
  68. <RowDefinition />
  69. <RowDefinition />
  70. <RowDefinition />
  71. </Grid.RowDefinitions>
  72. <Grid.ColumnDefinitions>
  73. <ColumnDefinition Width="50*" />
  74. <ColumnDefinition Width="50*" />
  75. </Grid.ColumnDefinitions>
  76. <!--id-->
  77. <TextBlock Text="Id: "
  78. Grid.Row="0"
  79. Grid.Column="0"
  80. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  81. HorizontalAlignment="Right"
  82. VerticalAlignment="Center" />
  83. <TextBlock x:Name="txt_Id"
  84. Text="{Binding Robot.Id,Mode=TwoWay}"
  85. Grid.Row="0"
  86. Grid.Column="1"
  87. Margin="10,5"
  88. HorizontalAlignment="Left"
  89. VerticalAlignment="Center" />
  90. <!--名称-->
  91. <TextBlock Text="{lex:Loc 名称,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  92. Grid.Row="1"
  93. Grid.Column="0"
  94. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  95. HorizontalAlignment="Right"
  96. VerticalAlignment="Center" />
  97. <TextBox x:Name="txt_Name"
  98. Grid.Row="1"
  99. Grid.Column="1"
  100. Margin="10,5"
  101. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  102. MinWidth="80"
  103. TextAlignment="Center"
  104. HorizontalAlignment="Left"
  105. VerticalAlignment="Center">
  106. <TextBox.Text>
  107. <Binding Path="Robot.RobotName"
  108. Mode="TwoWay">
  109. <Binding.ValidationRules>
  110. <valRules:NameValidationRule />
  111. </Binding.ValidationRules>
  112. </Binding>
  113. </TextBox.Text>
  114. </TextBox>
  115. <!--机器人品牌-->
  116. <TextBlock Text="{lex:Loc 品牌,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  117. Grid.Row="2"
  118. Grid.Column="0"
  119. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  120. HorizontalAlignment="Right"
  121. VerticalAlignment="Center" />
  122. <ComboBox SelectedItem="{Binding Robot.RobotBrand,Mode=TwoWay}"
  123. Grid.Row="2"
  124. Grid.Column="1"
  125. Margin="10,5"
  126. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  127. MinWidth="80"
  128. HorizontalContentAlignment="Center"
  129. ItemsSource="{ext:EnumBindingSource EnumType=enums:RobotBrand}"
  130. HorizontalAlignment="Left"
  131. VerticalAlignment="Center" />
  132. <!--通讯方式-->
  133. <TextBlock Text="{lex:Loc 通讯方式,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  134. Grid.Row="3"
  135. Grid.Column="0"
  136. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  137. HorizontalAlignment="Right"
  138. VerticalAlignment="Center"
  139. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}" />
  140. <ComboBox Text="{Binding Robot.ConnectType,Mode=TwoWay}"
  141. Grid.Row="3"
  142. Grid.Column="1"
  143. Margin="10,5"
  144. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  145. MinWidth="80"
  146. HorizontalContentAlignment="Center"
  147. ItemsSource="{ext:EnumBindingSource EnumType=enums:TCPConnectType}"
  148. HorizontalAlignment="Left"
  149. VerticalAlignment="Center"
  150. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}" />
  151. <!--IP地址-->
  152. <TextBlock Text="IP: "
  153. Grid.Row="4"
  154. Grid.Column="0"
  155. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  156. HorizontalAlignment="Right"
  157. VerticalAlignment="Center"
  158. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}" />
  159. <TextBox x:Name="txt_IP"
  160. Grid.Row="4"
  161. Grid.Column="1"
  162. Margin="10,5"
  163. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  164. MinWidth="80"
  165. TextAlignment="Center"
  166. HorizontalAlignment="Left"
  167. VerticalAlignment="Center"
  168. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}">
  169. <TextBox.Text>
  170. <Binding Path="Robot.IP"
  171. Mode="TwoWay">
  172. <Binding.ValidationRules>
  173. <valRules:IPValidationRule />
  174. </Binding.ValidationRules>
  175. </Binding>
  176. </TextBox.Text>
  177. </TextBox>
  178. <!--端口号-->
  179. <TextBlock Text="Port: "
  180. Grid.Row="5"
  181. Grid.Column="0"
  182. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  183. HorizontalAlignment="Right"
  184. VerticalAlignment="Center"
  185. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}" />
  186. <TextBox x:Name="txt_Port"
  187. Grid.Row="5"
  188. Grid.Column="1"
  189. Margin="10,5"
  190. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  191. MinWidth="80"
  192. TextAlignment="Center"
  193. HorizontalAlignment="Left"
  194. VerticalAlignment="Center"
  195. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}">
  196. <TextBox.Text>
  197. <Binding Path="Robot.Port"
  198. Mode="TwoWay">
  199. <Binding.ValidationRules>
  200. <valRules:PortValidationRule />
  201. </Binding.ValidationRules>
  202. </Binding>
  203. </TextBox.Text>
  204. </TextBox>
  205. <!--结束符-->
  206. <TextBlock Text="{lex:Loc 结束符,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  207. Grid.Row="6"
  208. Grid.Column="0"
  209. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  210. HorizontalAlignment="Right"
  211. VerticalAlignment="Center"
  212. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}" />
  213. <ComboBox Text="{Binding Robot.Terminator,Mode=TwoWay}"
  214. Grid.Row="6"
  215. Grid.Column="1"
  216. Margin="10,5"
  217. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  218. MinWidth="80"
  219. HorizontalContentAlignment="Center"
  220. ItemsSource="{ext:EnumBindingSource EnumType=enums:Terminator}"
  221. HorizontalAlignment="Left"
  222. VerticalAlignment="Center"
  223. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}" />
  224. <!--编码格式-->
  225. <TextBlock Text="{lex:Loc 编码解码,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  226. Grid.Row="7"
  227. Grid.Column="0"
  228. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  229. HorizontalAlignment="Right"
  230. VerticalAlignment="Center"
  231. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}" />
  232. <ComboBox Text="{Binding Robot.DataEncoding,Mode=TwoWay}"
  233. Grid.Row="7"
  234. Grid.Column="1"
  235. Margin="10,5"
  236. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  237. MinWidth="80"
  238. ItemsSource="{ext:EnumBindingSource EnumType=enums:DataEncoding}"
  239. HorizontalContentAlignment="Center"
  240. HorizontalAlignment="Left"
  241. VerticalAlignment="Center"
  242. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverter}}" />
  243. <!--PLC-->
  244. <TextBlock Grid.Row="3"
  245. Grid.Column="0"
  246. Text="PLC: "
  247. HorizontalAlignment="Right"
  248. VerticalAlignment="Center"
  249. d:Visibility="Collapsed"
  250. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverterInverse}}" />
  251. <ComboBox SelectedItem="{Binding SelectedPlc}"
  252. Grid.Row="3"
  253. Grid.Column="1"
  254. Margin="10,5"
  255. ItemsSource="{Binding management.DeviceConfig.Plcs}"
  256. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  257. MinWidth="80"
  258. HorizontalContentAlignment="Center"
  259. HorizontalAlignment="Left"
  260. VerticalAlignment="Center"
  261. d:Visibility="Collapsed"
  262. Visibility="{Binding Robot.RobotBrand,Converter={StaticResource RobotBrandToVisibiltyConverterInverse}}">
  263. <ComboBox.ItemTemplate>
  264. <DataTemplate>
  265. <TextBlock Text="{Binding Name}" />
  266. </DataTemplate>
  267. </ComboBox.ItemTemplate>
  268. </ComboBox>
  269. </Grid>
  270. <StackPanel Grid.Row="1"
  271. Orientation="Horizontal"
  272. HorizontalAlignment="Right">
  273. <Button Height="30"
  274. materialDesign:ButtonAssist.CornerRadius="10"
  275. ToolTip="{lex:Loc 确定}"
  276. Command="{Binding ConfirmCommand}">
  277. <TextBlock Text="{lex:Loc 确定}" />
  278. <Button.Style>
  279. <Style TargetType="Button"
  280. BasedOn="{StaticResource MaterialDesignRaisedButton}">
  281. <Style.Triggers>
  282. <MultiDataTrigger>
  283. <MultiDataTrigger.Conditions>
  284. <!-- 当且仅当IP地址合规且其他条件满足时,启用按钮 -->
  285. <Condition Binding="{Binding ElementName=txt_IP, Path=(Validation.HasError)}"
  286. Value="False" />
  287. <Condition Binding="{Binding ElementName=txt_Name, Path=(Validation.HasError)}"
  288. Value="False" />
  289. <Condition Binding="{Binding ElementName=txt_Port, Path=(Validation.HasError)}"
  290. Value="False" />
  291. </MultiDataTrigger.Conditions>
  292. <Setter Property="IsEnabled"
  293. Value="True" />
  294. </MultiDataTrigger>
  295. </Style.Triggers>
  296. </Style>
  297. </Button.Style>
  298. </Button>
  299. <Button Height="30"
  300. Margin="20,0"
  301. materialDesign:ButtonAssist.CornerRadius="10"
  302. Style="{StaticResource MaterialDesignRaisedButton}"
  303. ToolTip="{lex:Loc 取消}"
  304. Command="{Binding CancelCommand}">
  305. <TextBlock Text="{lex:Loc 取消}" />
  306. </Button>
  307. </StackPanel>
  308. </Grid>
  309. </UserControl>