PlcRobotManualStep.xaml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. <UserControl x:Class="TeamAAS_VP.Views.DebugMod.PlcRobotManualStep"
  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:vm="clr-namespace:TeamAAS_VP.ViewModels.DebugMod"
  8. xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
  9. xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
  10. xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
  11. xmlns:sys="clr-namespace:System;assembly=mscorlib"
  12. xmlns:uControl="clr-namespace:TeamAAS_VP.Controls"
  13. xmlns:convert="clr-namespace:TeamAAS_VP.ValueConverter"
  14. xmlns:lex="http://wpflocalizeextension.codeplex.com"
  15. lex:LocalizeDictionary.DesignCulture="zh-CN"
  16. lex:ResxLocalizationProvider.DefaultAssembly="TeamAAS-VP"
  17. lex:ResxLocalizationProvider.DefaultDictionary="Lang"
  18. prism:ViewModelLocator.AutoWireViewModel="True"
  19. mc:Ignorable="d"
  20. d:Background="White"
  21. d:DataContext="{d:DesignInstance Type=vm:PlcRobotManualStepViewModel}"
  22. FontFamily="{DynamicResource DefaultFont}">
  23. <UserControl.Resources>
  24. <convert:JogConverter x:Key="JogConverter" />
  25. </UserControl.Resources>
  26. <ScrollViewer HorizontalAlignment="Stretch"
  27. VerticalAlignment="Stretch">
  28. <Grid HorizontalAlignment="Stretch"
  29. VerticalAlignment="Top"
  30. IsEnabled="{Binding IsAllowEdit}">
  31. <Grid.RowDefinitions>
  32. <RowDefinition Height="auto" />
  33. <RowDefinition Height="auto" />
  34. </Grid.RowDefinitions>
  35. <Grid Grid.Row="0"
  36. Margin="10"
  37. HorizontalAlignment="Center">
  38. <Grid.ColumnDefinitions>
  39. <ColumnDefinition Width="auto" />
  40. <ColumnDefinition Width="auto" />
  41. <ColumnDefinition Width="auto" />
  42. <ColumnDefinition Width="auto" />
  43. </Grid.ColumnDefinitions>
  44. <Grid.RowDefinitions>
  45. <RowDefinition Height="auto" />
  46. <RowDefinition Height="auto" />
  47. <RowDefinition Height="auto" />
  48. <RowDefinition Height="auto" />
  49. <RowDefinition Height="auto" />
  50. <RowDefinition Height="auto" />
  51. <RowDefinition Height="auto" />
  52. </Grid.RowDefinitions>
  53. <Grid.Resources>
  54. <Style TargetType="Button"
  55. BasedOn="{StaticResource MaterialDesignRaisedDarkButton}">
  56. <Setter Property="Width"
  57. Value="60" />
  58. <Setter Property="Height"
  59. Value="60" />
  60. <Setter Property="FontSize"
  61. Value="13" />
  62. <Setter Property="Padding"
  63. Value="0" />
  64. <Setter Property="HorizontalAlignment"
  65. Value="Center" />
  66. <Setter Property="VerticalAlignment"
  67. Value="Center" />
  68. <Setter Property="Margin"
  69. Value="2" />
  70. <Setter Property="materialDesign:ButtonAssist.CornerRadius"
  71. Value="10" />
  72. </Style>
  73. </Grid.Resources>
  74. <StackPanel Grid.ColumnSpan="4"
  75. Grid.Row="0"
  76. Grid.Column="0"
  77. VerticalAlignment="Center"
  78. Orientation="Horizontal">
  79. <Button Content="{lex:Loc 上使能}"
  80. Grid.Row="2"
  81. materialDesign:ButtonAssist.CornerRadius="10"
  82. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  83. Command="{Binding MotorCommand}"
  84. CommandParameter="True" />
  85. <Button Content="{lex:Loc 下使能}"
  86. Grid.Row="3"
  87. Margin="10"
  88. materialDesign:ButtonAssist.CornerRadius="10"
  89. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  90. Command="{Binding MotorCommand}"
  91. CommandParameter="False" />
  92. <Button Content="{lex:Loc 复位错误}"
  93. Grid.Row="4"
  94. materialDesign:ButtonAssist.CornerRadius="10"
  95. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  96. Command="{Binding ResetCommand}" />
  97. </StackPanel>
  98. <Button Grid.Row="2"
  99. Grid.Column="0"
  100. Command="{Binding JogCommand}"
  101. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=X-}">
  102. <StackPanel Orientation="Vertical">
  103. <materialDesign:PackIcon Kind="ArrowLeftBold"
  104. Width="26"
  105. Height="26" />
  106. <TextBlock Text="-X"
  107. HorizontalAlignment="Center" />
  108. </StackPanel>
  109. </Button>
  110. <Button Grid.Row="2"
  111. Grid.Column="2"
  112. Command="{Binding JogCommand}"
  113. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=X+}">
  114. <StackPanel Orientation="Vertical">
  115. <materialDesign:PackIcon Kind="ArrowRightBold"
  116. Width="26"
  117. Height="26" />
  118. <TextBlock Text="+X"
  119. HorizontalAlignment="Center" />
  120. </StackPanel>
  121. </Button>
  122. <Button Grid.Row="1"
  123. Grid.Column="1"
  124. Command="{Binding JogCommand}"
  125. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Y+}">
  126. <StackPanel Orientation="Vertical">
  127. <materialDesign:PackIcon Kind="ArrowTopBold"
  128. Width="26"
  129. Height="26" />
  130. <TextBlock Text="+Y"
  131. HorizontalAlignment="Center" />
  132. </StackPanel>
  133. </Button>
  134. <Button Grid.Row="3"
  135. Grid.Column="1"
  136. Command="{Binding JogCommand}"
  137. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Y-}">
  138. <StackPanel Orientation="Vertical">
  139. <materialDesign:PackIcon Kind="ArrowBottomBold"
  140. Width="26"
  141. Height="26" />
  142. <TextBlock Text="-Y"
  143. HorizontalAlignment="Center" />
  144. </StackPanel>
  145. </Button>
  146. <Button Grid.Row="1"
  147. Grid.Column="3"
  148. Command="{Binding JogCommand}"
  149. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Z+}">
  150. <StackPanel Orientation="Vertical">
  151. <materialDesign:PackIcon Kind="ArrowTopBold"
  152. Width="26"
  153. Height="26" />
  154. <TextBlock Text="+Z"
  155. HorizontalAlignment="Center" />
  156. </StackPanel>
  157. </Button>
  158. <Button Grid.Row="3"
  159. Grid.Column="3"
  160. Command="{Binding JogCommand}"
  161. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Z-}">
  162. <StackPanel Orientation="Vertical">
  163. <materialDesign:PackIcon Kind="ArrowBottomBold"
  164. Width="26"
  165. Height="26" />
  166. <TextBlock Text="-Z"
  167. HorizontalAlignment="Center" />
  168. </StackPanel>
  169. </Button>
  170. <Button Grid.Row="4"
  171. Grid.Column="3"
  172. Command="{Binding JogCommand}"
  173. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=U+}">
  174. <StackPanel Orientation="Vertical">
  175. <materialDesign:PackIcon Kind="AxisZRotateCounterclockwise"
  176. Width="26"
  177. Height="26" />
  178. <TextBlock Text="+U"
  179. HorizontalAlignment="Center" />
  180. </StackPanel>
  181. </Button>
  182. <Button Grid.Row="4"
  183. Grid.Column="0"
  184. Command="{Binding JogCommand}"
  185. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=U-}">
  186. <StackPanel Orientation="Vertical">
  187. <materialDesign:PackIcon Kind="AxisZRotateClockwise"
  188. Width="26"
  189. Height="26" />
  190. <TextBlock Text="-U"
  191. HorizontalAlignment="Center" />
  192. </StackPanel>
  193. </Button>
  194. <!--<Button Grid.Row="4"
  195. Grid.Column="1"
  196. Grid.ColumnSpan="2"
  197. Command="{Binding JogCommand}"
  198. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=V+}">
  199. <StackPanel Orientation="Vertical">
  200. <materialDesign:PackIcon Kind="AxisYRotateCounterclockwise"
  201. Width="26"
  202. Height="26" />
  203. <TextBlock Text="+V"
  204. HorizontalAlignment="Center" />
  205. </StackPanel>
  206. </Button>
  207. <Button Grid.Row="5"
  208. Grid.Column="1"
  209. Grid.ColumnSpan="2"
  210. Command="{Binding JogCommand}"
  211. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=V-}">
  212. <StackPanel Orientation="Vertical">
  213. <materialDesign:PackIcon Kind="AxisYRotateClockwise"
  214. Width="26"
  215. Height="26" />
  216. <TextBlock Text="-V"
  217. HorizontalAlignment="Center" />
  218. </StackPanel>
  219. </Button>
  220. <Button Grid.Row="4"
  221. Grid.Column="3"
  222. Command="{Binding JogCommand}"
  223. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=W+}">
  224. <StackPanel Orientation="Vertical">
  225. <materialDesign:PackIcon Kind="AxisXRotateCounterclockwise"
  226. Width="26"
  227. Height="26" />
  228. <TextBlock Text="+W"
  229. HorizontalAlignment="Center" />
  230. </StackPanel>
  231. </Button>
  232. <Button Grid.Row="5"
  233. Grid.Column="3"
  234. Command="{Binding JogCommand}"
  235. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=W-}">
  236. <StackPanel Orientation="Vertical">
  237. <materialDesign:PackIcon Kind="AxisXRotateClockwise"
  238. Width="26"
  239. Height="26" />
  240. <TextBlock Text="-W"
  241. HorizontalAlignment="Center" />
  242. </StackPanel>
  243. </Button>-->
  244. <StackPanel Grid.Row="5"
  245. Grid.ColumnSpan="7"
  246. Margin="10,10,0,10"
  247. Grid.Column="0"
  248. VerticalAlignment="Center"
  249. Orientation="Horizontal">
  250. <TextBlock Text="{lex:Loc 步进距离}"
  251. VerticalAlignment="Center" />
  252. <uControl:myNumericUpDowm x:Name="txtDistance"
  253. MinWidth="100"
  254. Interval="0.1"
  255. Minimum="0"
  256. Maximum="100"
  257. StringFormat="{}{0:N3} mm"
  258. Value="{Binding Distance,Mode=TwoWay}"
  259. Margin="10,0" />
  260. </StackPanel>
  261. <TextBlock Grid.Row="6"
  262. Grid.ColumnSpan="7"
  263. VerticalAlignment="Center"
  264. Margin="10,0">
  265. <TextBlock.Text>
  266. <MultiBinding StringFormat="{}CurPos X: {0:F3} mm Y: {1:F3} mm Z: {2:F3} mm U: {3:F3} mm">
  267. <Binding Path="Robot.CurrentPosition.X" />
  268. <Binding Path="Robot.CurrentPosition.Y" />
  269. <Binding Path="Robot.CurrentPosition.Z" />
  270. <Binding Path="Robot.CurrentPosition.U" />
  271. </MultiBinding>
  272. </TextBlock.Text>
  273. </TextBlock>
  274. </Grid>
  275. <!-- 附加轴列表:绑定到视图模型中的 ExtraAxes 集合(每项假定有 Name、Position) -->
  276. <ItemsControl Grid.Row="1"
  277. ItemsSource="{Binding AdditionalAxisList}">
  278. <ItemsControl.ItemTemplate>
  279. <DataTemplate>
  280. <Border Padding="6"
  281. Margin="0,2"
  282. Background="{DynamicResource MaterialDesignPaper}">
  283. <DockPanel LastChildFill="False"
  284. VerticalAlignment="Center">
  285. <StackPanel Orientation="Horizontal"
  286. DockPanel.Dock="Left"
  287. VerticalAlignment="Center">
  288. <TextBlock Text="{Binding Index}"
  289. FontWeight="Bold"
  290. VerticalAlignment="Center" />
  291. <TextBlock Text="{Binding Name}"
  292. FontWeight="Bold"
  293. Margin="2,0"
  294. VerticalAlignment="Center" />
  295. <TextBlock Text="当前位置:"
  296. Margin="30,0"
  297. VerticalAlignment="Center" />
  298. <TextBlock Text="{Binding CurrentPosition, StringFormat='{}{0:F3} mm'}"
  299. Width="140"
  300. VerticalAlignment="Center" />
  301. </StackPanel>
  302. <StackPanel Orientation="Horizontal"
  303. HorizontalAlignment="Right"
  304. DockPanel.Dock="Right">
  305. <StackPanel.Resources>
  306. <Style TargetType="Button"
  307. BasedOn="{StaticResource MaterialDesignRaisedDarkButton}">
  308. <Setter Property="Width"
  309. Value="60" />
  310. <Setter Property="Height"
  311. Value="60" />
  312. <Setter Property="FontSize"
  313. Value="13" />
  314. <Setter Property="Padding"
  315. Value="0" />
  316. <Setter Property="HorizontalAlignment"
  317. Value="Center" />
  318. <Setter Property="VerticalAlignment"
  319. Value="Center" />
  320. <Setter Property="Margin"
  321. Value="2" />
  322. <Setter Property="materialDesign:ButtonAssist.CornerRadius"
  323. Value="10" />
  324. </Style>
  325. </StackPanel.Resources>
  326. <Button Width="60"
  327. Height="36"
  328. Margin="6,0"
  329. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  330. Command="{Binding DataContext.AdditionalAxisJogPlusCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
  331. CommandParameter="{Binding}">
  332. <StackPanel Orientation="Vertical">
  333. <materialDesign:PackIcon Kind="ArrowLeftBold"
  334. Width="26"
  335. Height="26" />
  336. <TextBlock Text="+"
  337. HorizontalAlignment="Center" />
  338. </StackPanel>
  339. </Button>
  340. <Button Width="60"
  341. Height="36"
  342. Margin="6,0"
  343. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  344. Command="{Binding DataContext.AdditionalAxisJogMinusCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
  345. CommandParameter="{Binding}">
  346. <StackPanel Orientation="Vertical">
  347. <materialDesign:PackIcon Kind="ArrowRightBold"
  348. Width="26"
  349. Height="26" />
  350. <TextBlock Text="-"
  351. HorizontalAlignment="Center" />
  352. </StackPanel>
  353. </Button>
  354. <Button Content="{lex:Loc 上使能}"
  355. Width="60"
  356. Height="36"
  357. Margin="6,0"
  358. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  359. Command="{Binding DataContext.AdditionalAxisMotorOnCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
  360. CommandParameter="{Binding}" />
  361. <Button Content="{lex:Loc 下使能}"
  362. Width="60"
  363. Height="36"
  364. Margin="6,0"
  365. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  366. Command="{Binding DataContext.AdditionalAxisMotorOffCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
  367. CommandParameter="{Binding}" />
  368. </StackPanel>
  369. </DockPanel>
  370. </Border>
  371. </DataTemplate>
  372. </ItemsControl.ItemTemplate>
  373. </ItemsControl>
  374. <materialDesign:Snackbar Grid.RowSpan="2"
  375. x:Name="snackbar"
  376. Opacity="0.9"
  377. HorizontalContentAlignment="Center"
  378. VerticalAlignment="Top" />
  379. </Grid>
  380. </ScrollViewer>
  381. </UserControl>