PlcRobotManualStep.xaml 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742
  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. <RowDefinition Height="auto" />
  35. </Grid.RowDefinitions>
  36. <Grid Grid.Row="0"
  37. Margin="10"
  38. HorizontalAlignment="Center">
  39. <Grid.ColumnDefinitions>
  40. <ColumnDefinition Width="auto" />
  41. <ColumnDefinition Width="auto" />
  42. <ColumnDefinition Width="auto" />
  43. <ColumnDefinition Width="auto" />
  44. </Grid.ColumnDefinitions>
  45. <Grid.RowDefinitions>
  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. <RowDefinition Height="auto" />
  53. </Grid.RowDefinitions>
  54. <Grid.Resources>
  55. <Style TargetType="Button"
  56. BasedOn="{StaticResource MaterialDesignRaisedDarkButton}">
  57. <Setter Property="Width"
  58. Value="60" />
  59. <Setter Property="Height"
  60. Value="60" />
  61. <Setter Property="FontSize"
  62. Value="13" />
  63. <Setter Property="Padding"
  64. Value="0" />
  65. <Setter Property="HorizontalAlignment"
  66. Value="Center" />
  67. <Setter Property="VerticalAlignment"
  68. Value="Center" />
  69. <Setter Property="Margin"
  70. Value="2" />
  71. <Setter Property="materialDesign:ButtonAssist.CornerRadius"
  72. Value="10" />
  73. </Style>
  74. </Grid.Resources>
  75. <StackPanel Grid.ColumnSpan="4"
  76. Grid.Row="0"
  77. Grid.Column="0"
  78. VerticalAlignment="Center"
  79. Orientation="Horizontal">
  80. <Button Content="{lex:Loc 上使能}"
  81. Grid.Row="2"
  82. materialDesign:ButtonAssist.CornerRadius="10"
  83. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  84. Command="{Binding MotorCommand}"
  85. CommandParameter="True" />
  86. <Button Content="{lex:Loc 下使能}"
  87. Grid.Row="3"
  88. Margin="10"
  89. materialDesign:ButtonAssist.CornerRadius="10"
  90. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  91. Command="{Binding MotorCommand}"
  92. CommandParameter="False" />
  93. <Button Content="{lex:Loc 复位错误}"
  94. Grid.Row="4"
  95. materialDesign:ButtonAssist.CornerRadius="10"
  96. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  97. Command="{Binding ResetCommand}" />
  98. </StackPanel>
  99. <Button Grid.Row="2"
  100. Grid.Column="0"
  101. Command="{Binding JogCommand}"
  102. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=X-}">
  103. <StackPanel Orientation="Vertical">
  104. <materialDesign:PackIcon Kind="ArrowLeftBold"
  105. Width="26"
  106. Height="26" />
  107. <TextBlock Text="-X"
  108. HorizontalAlignment="Center" />
  109. </StackPanel>
  110. </Button>
  111. <Button Grid.Row="2"
  112. Grid.Column="2"
  113. Command="{Binding JogCommand}"
  114. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=X+}">
  115. <StackPanel Orientation="Vertical">
  116. <materialDesign:PackIcon Kind="ArrowRightBold"
  117. Width="26"
  118. Height="26" />
  119. <TextBlock Text="+X"
  120. HorizontalAlignment="Center" />
  121. </StackPanel>
  122. </Button>
  123. <Button Grid.Row="1"
  124. Grid.Column="1"
  125. Command="{Binding JogCommand}"
  126. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Y+}">
  127. <StackPanel Orientation="Vertical">
  128. <materialDesign:PackIcon Kind="ArrowTopBold"
  129. Width="26"
  130. Height="26" />
  131. <TextBlock Text="+Y"
  132. HorizontalAlignment="Center" />
  133. </StackPanel>
  134. </Button>
  135. <Button Grid.Row="3"
  136. Grid.Column="1"
  137. Command="{Binding JogCommand}"
  138. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Y-}">
  139. <StackPanel Orientation="Vertical">
  140. <materialDesign:PackIcon Kind="ArrowBottomBold"
  141. Width="26"
  142. Height="26" />
  143. <TextBlock Text="-Y"
  144. HorizontalAlignment="Center" />
  145. </StackPanel>
  146. </Button>
  147. <Button Grid.Row="1"
  148. Grid.Column="3"
  149. Command="{Binding JogCommand}"
  150. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Z+}">
  151. <StackPanel Orientation="Vertical">
  152. <materialDesign:PackIcon Kind="ArrowTopBold"
  153. Width="26"
  154. Height="26" />
  155. <TextBlock Text="+Z"
  156. HorizontalAlignment="Center" />
  157. </StackPanel>
  158. </Button>
  159. <Button Grid.Row="3"
  160. Grid.Column="3"
  161. Command="{Binding JogCommand}"
  162. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Z-}">
  163. <StackPanel Orientation="Vertical">
  164. <materialDesign:PackIcon Kind="ArrowBottomBold"
  165. Width="26"
  166. Height="26" />
  167. <TextBlock Text="-Z"
  168. HorizontalAlignment="Center" />
  169. </StackPanel>
  170. </Button>
  171. <Button Grid.Row="4"
  172. Grid.Column="3"
  173. Command="{Binding JogCommand}"
  174. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=U+}">
  175. <StackPanel Orientation="Vertical">
  176. <materialDesign:PackIcon Kind="AxisZRotateCounterclockwise"
  177. Width="26"
  178. Height="26" />
  179. <TextBlock Text="+U"
  180. HorizontalAlignment="Center" />
  181. </StackPanel>
  182. </Button>
  183. <Button Grid.Row="4"
  184. Grid.Column="0"
  185. Command="{Binding JogCommand}"
  186. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=U-}">
  187. <StackPanel Orientation="Vertical">
  188. <materialDesign:PackIcon Kind="AxisZRotateClockwise"
  189. Width="26"
  190. Height="26" />
  191. <TextBlock Text="-U"
  192. HorizontalAlignment="Center" />
  193. </StackPanel>
  194. </Button>
  195. <!--<Button Grid.Row="4"
  196. Grid.Column="1"
  197. Grid.ColumnSpan="2"
  198. Command="{Binding JogCommand}"
  199. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=V+}">
  200. <StackPanel Orientation="Vertical">
  201. <materialDesign:PackIcon Kind="AxisYRotateCounterclockwise"
  202. Width="26"
  203. Height="26" />
  204. <TextBlock Text="+V"
  205. HorizontalAlignment="Center" />
  206. </StackPanel>
  207. </Button>
  208. <Button Grid.Row="5"
  209. Grid.Column="1"
  210. Grid.ColumnSpan="2"
  211. Command="{Binding JogCommand}"
  212. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=V-}">
  213. <StackPanel Orientation="Vertical">
  214. <materialDesign:PackIcon Kind="AxisYRotateClockwise"
  215. Width="26"
  216. Height="26" />
  217. <TextBlock Text="-V"
  218. HorizontalAlignment="Center" />
  219. </StackPanel>
  220. </Button>
  221. <Button Grid.Row="4"
  222. Grid.Column="3"
  223. Command="{Binding JogCommand}"
  224. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=W+}">
  225. <StackPanel Orientation="Vertical">
  226. <materialDesign:PackIcon Kind="AxisXRotateCounterclockwise"
  227. Width="26"
  228. Height="26" />
  229. <TextBlock Text="+W"
  230. HorizontalAlignment="Center" />
  231. </StackPanel>
  232. </Button>
  233. <Button Grid.Row="5"
  234. Grid.Column="3"
  235. Command="{Binding JogCommand}"
  236. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=W-}">
  237. <StackPanel Orientation="Vertical">
  238. <materialDesign:PackIcon Kind="AxisXRotateClockwise"
  239. Width="26"
  240. Height="26" />
  241. <TextBlock Text="-W"
  242. HorizontalAlignment="Center" />
  243. </StackPanel>
  244. </Button>-->
  245. <StackPanel Grid.Row="5"
  246. Grid.ColumnSpan="7"
  247. Margin="10,10,0,10"
  248. Grid.Column="0"
  249. VerticalAlignment="Center"
  250. Orientation="Horizontal">
  251. <TextBlock Text="{lex:Loc 步进距离}"
  252. VerticalAlignment="Center" />
  253. <uControl:myNumericUpDowm x:Name="txtDistance"
  254. MinWidth="100"
  255. Interval="0.1"
  256. Minimum="0"
  257. Maximum="100"
  258. StringFormat="{}{0:N3} mm"
  259. Value="{Binding Distance,Mode=TwoWay}"
  260. Margin="10,0" />
  261. </StackPanel>
  262. <TextBlock Grid.Row="6"
  263. Grid.ColumnSpan="7"
  264. VerticalAlignment="Center"
  265. Margin="10,0">
  266. <TextBlock.Text>
  267. <MultiBinding StringFormat="{}CurPos X: {0:F3} mm Y: {1:F3} mm Z: {2:F3} mm U: {3:F3} mm">
  268. <Binding Path="Robot.CurrentPosition.X" />
  269. <Binding Path="Robot.CurrentPosition.Y" />
  270. <Binding Path="Robot.CurrentPosition.Z" />
  271. <Binding Path="Robot.CurrentPosition.U" />
  272. </MultiBinding>
  273. </TextBlock.Text>
  274. </TextBlock>
  275. </Grid>
  276. <!--相机轴控制区域-->
  277. <Grid Grid.Row="1"
  278. Margin="10,0,10,10">
  279. <Grid.RowDefinitions>
  280. <RowDefinition Height="*" />
  281. <RowDefinition Height="*" />
  282. </Grid.RowDefinitions>
  283. <Grid.ColumnDefinitions>
  284. <ColumnDefinition Width="*" />
  285. <ColumnDefinition Width="*" />
  286. </Grid.ColumnDefinitions>
  287. <Grid.Resources>
  288. <Style TargetType="Button"
  289. BasedOn="{StaticResource MaterialDesignRaisedDarkButton}">
  290. <Setter Property="MinWidth"
  291. Value="50" />
  292. <Setter Property="MinHeight"
  293. Value="30" />
  294. <Setter Property="FontSize"
  295. Value="13" />
  296. <Setter Property="Padding"
  297. Value="0" />
  298. <Setter Property="HorizontalAlignment"
  299. Value="Center" />
  300. <Setter Property="VerticalAlignment"
  301. Value="Center" />
  302. <Setter Property="materialDesign:ButtonAssist.CornerRadius"
  303. Value="10" />
  304. </Style>
  305. </Grid.Resources>
  306. <!--相机2-->
  307. <Border Grid.Row="0"
  308. Grid.Column="0"
  309. HorizontalAlignment="Stretch"
  310. BorderBrush="LightGray"
  311. BorderThickness="1"
  312. CornerRadius="10"
  313. Margin="2">
  314. <Grid>
  315. <Grid.RowDefinitions>
  316. <RowDefinition Height="auto" />
  317. <RowDefinition Height="auto" />
  318. <RowDefinition Height="auto" />
  319. <RowDefinition Height="auto" />
  320. <RowDefinition Height="auto" />
  321. <RowDefinition Height="auto" />
  322. </Grid.RowDefinitions>
  323. <Grid.ColumnDefinitions>
  324. <ColumnDefinition Width="*" />
  325. <ColumnDefinition Width="*" />
  326. <ColumnDefinition Width="*" />
  327. </Grid.ColumnDefinitions>
  328. <TextBlock Grid.Row="0"
  329. Grid.ColumnSpan="3"
  330. Text="相机2轴控制"
  331. FontWeight="Bold"
  332. FontSize="14"
  333. HorizontalAlignment="Center" />
  334. <TextBlock Grid.Row="1"
  335. Grid.ColumnSpan="3"
  336. VerticalAlignment="Center"
  337. Margin="10,0">
  338. <TextBlock.Text>
  339. <MultiBinding StringFormat="{}X: {0:F3} mm Y: {1:F3} mm">
  340. <Binding Path="Robot.Camera2CurrentPosition.X" />
  341. <Binding Path="Robot.Camera2CurrentPosition.Y" />
  342. </MultiBinding>
  343. </TextBlock.Text>
  344. </TextBlock>
  345. <StackPanel Grid.Row="2"
  346. Grid.ColumnSpan="3"
  347. Orientation="Horizontal"
  348. HorizontalAlignment="Center">
  349. <Button Content="{lex:Loc 上使能}"
  350. Command="{Binding CameraAxisModerOnCommand}"
  351. CommandParameter="2"
  352. Margin="2,0" />
  353. <Button Content="{lex:Loc 下使能}"
  354. Margin="2,0"
  355. Command="{Binding CameraAxisModerOffCommand}"
  356. CommandParameter="2" />
  357. </StackPanel>
  358. <Button Grid.Row="4"
  359. Grid.Column="0"
  360. MinHeight="30"
  361. MinWidth="40"
  362. Width="40"
  363. Height="30"
  364. Content="{materialDesign:PackIcon ArrowLeftBold}"
  365. Command="{Binding CameraAxisJogCommand}"
  366. CommandParameter="2,X-" />
  367. <Button Grid.Row="4"
  368. Grid.Column="2"
  369. MinHeight="30"
  370. MinWidth="40"
  371. Width="40"
  372. Height="30"
  373. Content="{materialDesign:PackIcon ArrowRightBold}"
  374. Command="{Binding CameraAxisJogCommand}"
  375. CommandParameter="2,X+" />
  376. <Button Grid.Row="3"
  377. Grid.Column="1"
  378. MinHeight="30"
  379. MinWidth="40"
  380. Width="40"
  381. Height="30"
  382. Content="{materialDesign:PackIcon ArrowTopBold}"
  383. Command="{Binding CameraAxisJogCommand}"
  384. CommandParameter="2,Y+" />
  385. <Button Grid.Row="5"
  386. Grid.Column="1"
  387. MinHeight="30"
  388. MinWidth="40"
  389. Width="40"
  390. Height="30"
  391. Content="{materialDesign:PackIcon ArrowBottomBold}"
  392. Command="{Binding CameraAxisJogCommand}"
  393. CommandParameter="2,Y-" />
  394. </Grid>
  395. </Border>
  396. <!--相机4-->
  397. <Border Grid.Row="0"
  398. Grid.Column="1"
  399. HorizontalAlignment="Stretch"
  400. BorderBrush="LightGray"
  401. BorderThickness="1"
  402. CornerRadius="10"
  403. Margin="2">
  404. <Grid>
  405. <Grid.RowDefinitions>
  406. <RowDefinition Height="auto" />
  407. <RowDefinition Height="auto" />
  408. <RowDefinition Height="auto" />
  409. <RowDefinition Height="auto" />
  410. <RowDefinition Height="auto" />
  411. <RowDefinition Height="auto" />
  412. </Grid.RowDefinitions>
  413. <Grid.ColumnDefinitions>
  414. <ColumnDefinition Width="*" />
  415. <ColumnDefinition Width="*" />
  416. <ColumnDefinition Width="*" />
  417. </Grid.ColumnDefinitions>
  418. <TextBlock Grid.Row="0"
  419. Grid.ColumnSpan="3"
  420. Text="相机4轴控制"
  421. FontWeight="Bold"
  422. FontSize="14"
  423. HorizontalAlignment="Center" />
  424. <TextBlock Grid.Row="1"
  425. Grid.ColumnSpan="3"
  426. VerticalAlignment="Center"
  427. Margin="10,0">
  428. <TextBlock.Text>
  429. <MultiBinding StringFormat="{}X: {0:F3} mm Y: {1:F3} mm">
  430. <Binding Path="Robot.Camera4CurrentPosition.X" />
  431. <Binding Path="Robot.Camera4CurrentPosition.Y" />
  432. </MultiBinding>
  433. </TextBlock.Text>
  434. </TextBlock>
  435. <StackPanel Grid.Row="2"
  436. Grid.ColumnSpan="3"
  437. Orientation="Horizontal"
  438. HorizontalAlignment="Center">
  439. <Button Content="{lex:Loc 上使能}"
  440. Command="{Binding CameraAxisModerOnCommand}"
  441. CommandParameter="4"
  442. Margin="2,0" />
  443. <Button Content="{lex:Loc 下使能}"
  444. Command="{Binding CameraAxisModerOffCommand}"
  445. CommandParameter="4"
  446. Margin="2,0" />
  447. </StackPanel>
  448. <Button Grid.Row="4"
  449. Grid.Column="0"
  450. MinHeight="30"
  451. MinWidth="40"
  452. Width="40"
  453. Height="30"
  454. Content="{materialDesign:PackIcon ArrowLeftBold}"
  455. Command="{Binding CameraAxisJogCommand}"
  456. CommandParameter="4,X-" />
  457. <Button Grid.Row="4"
  458. Grid.Column="2"
  459. MinHeight="30"
  460. MinWidth="40"
  461. Width="40"
  462. Height="30"
  463. Content="{materialDesign:PackIcon ArrowRightBold}"
  464. Command="{Binding CameraAxisJogCommand}"
  465. CommandParameter="4,X+" />
  466. <Button Grid.Row="3"
  467. Grid.Column="1"
  468. MinHeight="30"
  469. MinWidth="40"
  470. Width="40"
  471. Height="30"
  472. Content="{materialDesign:PackIcon ArrowTopBold}"
  473. Command="{Binding CameraAxisJogCommand}"
  474. CommandParameter="4,Y+" />
  475. <Button Grid.Row="5"
  476. Grid.Column="1"
  477. MinHeight="30"
  478. MinWidth="40"
  479. Width="40"
  480. Height="30"
  481. Content="{materialDesign:PackIcon ArrowBottomBold}"
  482. Command="{Binding CameraAxisJogCommand}"
  483. CommandParameter="4,Y-" />
  484. </Grid>
  485. </Border>
  486. <!--相机1-->
  487. <Border Grid.Row="1"
  488. Grid.Column="0"
  489. HorizontalAlignment="Stretch"
  490. BorderBrush="LightGray"
  491. BorderThickness="1"
  492. CornerRadius="10"
  493. Margin="2">
  494. <Grid>
  495. <Grid.RowDefinitions>
  496. <RowDefinition Height="auto" />
  497. <RowDefinition Height="auto" />
  498. <RowDefinition Height="auto" />
  499. <RowDefinition Height="auto" />
  500. <RowDefinition Height="auto" />
  501. <RowDefinition Height="auto" />
  502. </Grid.RowDefinitions>
  503. <Grid.ColumnDefinitions>
  504. <ColumnDefinition Width="*" />
  505. <ColumnDefinition Width="*" />
  506. <ColumnDefinition Width="*" />
  507. </Grid.ColumnDefinitions>
  508. <TextBlock Grid.Row="0"
  509. Grid.ColumnSpan="3"
  510. Text="相机1轴控制"
  511. FontWeight="Bold"
  512. FontSize="14"
  513. HorizontalAlignment="Center" />
  514. <TextBlock Grid.Row="1"
  515. Grid.ColumnSpan="3"
  516. VerticalAlignment="Center"
  517. Margin="10,0">
  518. <TextBlock.Text>
  519. <MultiBinding StringFormat="{}X: {0:F3} mm Y: {1:F3} mm">
  520. <Binding Path="Robot.Camera1CurrentPosition.X" />
  521. <Binding Path="Robot.Camera1CurrentPosition.Y" />
  522. </MultiBinding>
  523. </TextBlock.Text>
  524. </TextBlock>
  525. <StackPanel Grid.Row="2"
  526. Grid.ColumnSpan="3"
  527. Orientation="Horizontal"
  528. HorizontalAlignment="Center">
  529. <Button Content="{lex:Loc 上使能}"
  530. Command="{Binding CameraAxisModerOnCommand}"
  531. CommandParameter="1"
  532. Margin="2,0" />
  533. <Button Content="{lex:Loc 下使能}"
  534. Command="{Binding CameraAxisModerOffCommand}"
  535. CommandParameter="1"
  536. Margin="2,0" />
  537. </StackPanel>
  538. <Button Grid.Row="4"
  539. Grid.Column="0"
  540. MinHeight="30"
  541. MinWidth="40"
  542. Width="40"
  543. Height="30"
  544. Content="{materialDesign:PackIcon ArrowLeftBold}"
  545. Command="{Binding CameraAxisJogCommand}"
  546. CommandParameter="1,X-" />
  547. <Button Grid.Row="4"
  548. Grid.Column="2"
  549. MinHeight="30"
  550. MinWidth="40"
  551. Width="40"
  552. Height="30"
  553. Content="{materialDesign:PackIcon ArrowRightBold}"
  554. Command="{Binding CameraAxisJogCommand}"
  555. CommandParameter="1,X+" />
  556. </Grid>
  557. </Border>
  558. <!--相机3-->
  559. <Border Grid.Row="1"
  560. Grid.Column="1"
  561. HorizontalAlignment="Stretch"
  562. BorderBrush="LightGray"
  563. BorderThickness="1"
  564. CornerRadius="10"
  565. Margin="2">
  566. <Grid>
  567. <Grid.RowDefinitions>
  568. <RowDefinition Height="auto" />
  569. <RowDefinition Height="auto" />
  570. <RowDefinition Height="auto" />
  571. <RowDefinition Height="auto" />
  572. <RowDefinition Height="auto" />
  573. <RowDefinition Height="auto" />
  574. </Grid.RowDefinitions>
  575. <Grid.ColumnDefinitions>
  576. <ColumnDefinition Width="*" />
  577. <ColumnDefinition Width="*" />
  578. <ColumnDefinition Width="*" />
  579. </Grid.ColumnDefinitions>
  580. <TextBlock Grid.Row="0"
  581. Grid.ColumnSpan="3"
  582. Text="相机3轴控制"
  583. FontWeight="Bold"
  584. FontSize="14"
  585. HorizontalAlignment="Center" />
  586. <TextBlock Grid.Row="1"
  587. Grid.ColumnSpan="3"
  588. VerticalAlignment="Center"
  589. Margin="10,0">
  590. <TextBlock.Text>
  591. <MultiBinding StringFormat="{}X: {0:F3} mm Y: {1:F3} mm">
  592. <Binding Path="Robot.Camera3CurrentPosition.X" />
  593. <Binding Path="Robot.Camera3CurrentPosition.Y" />
  594. </MultiBinding>
  595. </TextBlock.Text>
  596. </TextBlock>
  597. <StackPanel Grid.Row="2"
  598. Grid.ColumnSpan="3"
  599. Orientation="Horizontal"
  600. HorizontalAlignment="Center">
  601. <Button Content="{lex:Loc 上使能}"
  602. Command="{Binding CameraAxisModerOnCommand}"
  603. CommandParameter="3"
  604. Margin="2,0" />
  605. <Button Content="{lex:Loc 下使能}"
  606. Command="{Binding CameraAxisModerOffCommand}"
  607. CommandParameter="3"
  608. Margin="2,0" />
  609. </StackPanel>
  610. <Button Grid.Row="4"
  611. Grid.Column="0"
  612. MinHeight="30"
  613. MinWidth="40"
  614. Width="40"
  615. Height="30"
  616. Content="{materialDesign:PackIcon ArrowLeftBold}"
  617. Command="{Binding CameraAxisJogCommand}"
  618. CommandParameter="3,X-" />
  619. <Button Grid.Row="4"
  620. Grid.Column="2"
  621. MinHeight="30"
  622. MinWidth="40"
  623. Width="40"
  624. Height="30"
  625. Content="{materialDesign:PackIcon ArrowRightBold}"
  626. Command="{Binding CameraAxisJogCommand}"
  627. CommandParameter="3,X+" />
  628. </Grid>
  629. </Border>
  630. </Grid>
  631. <!-- 附加轴列表:绑定到视图模型中的 ExtraAxes 集合(每项假定有 Name、Position) -->
  632. <ItemsControl Grid.Row="2"
  633. ItemsSource="{Binding AdditionalAxisList}">
  634. <ItemsControl.ItemTemplate>
  635. <DataTemplate>
  636. <Border Padding="6"
  637. Margin="0,2"
  638. Background="{DynamicResource MaterialDesignPaper}">
  639. <DockPanel LastChildFill="False"
  640. VerticalAlignment="Center">
  641. <StackPanel Orientation="Horizontal"
  642. DockPanel.Dock="Left"
  643. VerticalAlignment="Center">
  644. <TextBlock Text="{Binding Index}"
  645. FontWeight="Bold"
  646. VerticalAlignment="Center" />
  647. <TextBlock Text="{Binding Name}"
  648. FontWeight="Bold"
  649. Margin="2,0"
  650. VerticalAlignment="Center" />
  651. <TextBlock Text="当前位置:"
  652. Margin="30,0"
  653. VerticalAlignment="Center" />
  654. <TextBlock Text="{Binding CurrentPosition, StringFormat='{}{0:F3} mm'}"
  655. Width="140"
  656. VerticalAlignment="Center" />
  657. </StackPanel>
  658. <StackPanel Orientation="Horizontal"
  659. HorizontalAlignment="Right"
  660. DockPanel.Dock="Right">
  661. <StackPanel.Resources>
  662. <Style TargetType="Button"
  663. BasedOn="{StaticResource MaterialDesignRaisedDarkButton}">
  664. <Setter Property="Width"
  665. Value="60" />
  666. <Setter Property="Height"
  667. Value="60" />
  668. <Setter Property="FontSize"
  669. Value="13" />
  670. <Setter Property="Padding"
  671. Value="0" />
  672. <Setter Property="HorizontalAlignment"
  673. Value="Center" />
  674. <Setter Property="VerticalAlignment"
  675. Value="Center" />
  676. <Setter Property="Margin"
  677. Value="2" />
  678. <Setter Property="materialDesign:ButtonAssist.CornerRadius"
  679. Value="10" />
  680. </Style>
  681. </StackPanel.Resources>
  682. <Button Width="60"
  683. Height="36"
  684. Margin="6,0"
  685. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  686. Command="{Binding DataContext.AdditionalAxisJogMinusCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
  687. CommandParameter="{Binding}">
  688. <StackPanel Orientation="Vertical">
  689. <materialDesign:PackIcon Kind="ArrowLeftBold"
  690. Width="26"
  691. Height="26" />
  692. <TextBlock Text="-"
  693. HorizontalAlignment="Center" />
  694. </StackPanel>
  695. </Button>
  696. <Button Width="60"
  697. Height="36"
  698. Margin="6,0"
  699. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  700. Command="{Binding DataContext.AdditionalAxisJogPlusCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
  701. CommandParameter="{Binding}">
  702. <StackPanel Orientation="Vertical">
  703. <materialDesign:PackIcon Kind="ArrowRightBold"
  704. Width="26"
  705. Height="26" />
  706. <TextBlock Text="+"
  707. HorizontalAlignment="Center" />
  708. </StackPanel>
  709. </Button>
  710. <Button Content="上使能"
  711. Width="60"
  712. Height="36"
  713. Margin="6,0"
  714. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  715. Command="{Binding DataContext.AdditionalAxisMotorOnCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
  716. CommandParameter="{Binding}" />
  717. <Button Content="下使能"
  718. Width="60"
  719. Height="36"
  720. Margin="6,0"
  721. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  722. Command="{Binding DataContext.AdditionalAxisMotorOffCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
  723. CommandParameter="{Binding}" />
  724. </StackPanel>
  725. </DockPanel>
  726. </Border>
  727. </DataTemplate>
  728. </ItemsControl.ItemTemplate>
  729. </ItemsControl>
  730. <materialDesign:Snackbar Grid.RowSpan="2"
  731. x:Name="snackbar"
  732. Opacity="0.9"
  733. HorizontalContentAlignment="Center"
  734. VerticalAlignment="Top" />
  735. </Grid>
  736. </ScrollViewer>
  737. </UserControl>