PlcRobotManualStep.xaml 41 KB

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