PlcRobotManual.xaml 39 KB

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