RobotPointParams.xaml 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804
  1. <UserControl x:Class="TeamAAS_VP.Views.Product.RobotPointParams"
  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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
  6. xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
  7. xmlns:sys="clr-namespace:System;assembly=mscorlib"
  8. xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
  9. xmlns:enums="clr-namespace:TeamAAS_VP.Enums"
  10. xmlns:uControl="clr-namespace:TeamAAS_VP.Controls"
  11. xmlns:convert="clr-namespace:TeamAAS_VP.ValueConverter"
  12. xmlns:local="clr-namespace:TeamAAS_VP.Views.Product"
  13. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  14. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  15. xmlns:vm="clr-namespace:TeamAAS_VP.ViewModels.Product"
  16. xmlns:ext="clr-namespace:TeamAAS_VP.Extension"
  17. xmlns:lex="http://wpflocalizeextension.codeplex.com"
  18. xmlns:localRobot="clr-namespace:TeamAAS_VP.Models.Robot"
  19. lex:LocalizeDictionary.DesignCulture="zh-CN"
  20. lex:ResxLocalizationProvider.DefaultAssembly="TeamAAS-VP"
  21. lex:ResxLocalizationProvider.DefaultDictionary="Lang"
  22. prism:ViewModelLocator.AutoWireViewModel="True"
  23. mc:Ignorable="d"
  24. d:DataContext="{d:DesignInstance Type=vm:RobotPointParamsViewModel}"
  25. d:Height="600"
  26. d:Width="1024"
  27. d:Background="White"
  28. FontFamily="{DynamicResource DefaultFont}">
  29. <b:Interaction.Triggers>
  30. <b:EventTrigger EventName="Loaded">
  31. <b:InvokeCommandAction Command="{Binding LoadedCommand}" />
  32. </b:EventTrigger>
  33. </b:Interaction.Triggers>
  34. <UserControl.Resources>
  35. <ObjectDataProvider x:Key="eRobotHand"
  36. MethodName="GetValues"
  37. ObjectType="{x:Type sys:Enum}">
  38. <ObjectDataProvider.MethodParameters>
  39. <x:Type TypeName="enums:RobotHand" />
  40. </ObjectDataProvider.MethodParameters>
  41. </ObjectDataProvider>
  42. <ObjectDataProvider x:Key="eMotionCommand"
  43. MethodName="GetValues"
  44. ObjectType="{x:Type sys:Enum}">
  45. <ObjectDataProvider.MethodParameters>
  46. <x:Type TypeName="enums:MotionCommand" />
  47. </ObjectDataProvider.MethodParameters>
  48. </ObjectDataProvider>
  49. <convert:JogConverter x:Key="JogConverter" />
  50. <convert:MultiParameterConverter x:Key="MultiParameterConverter" />
  51. <convert:RobotConverter x:Key="RobotConverter" />
  52. </UserControl.Resources>
  53. <Grid>
  54. <Grid.RowDefinitions>
  55. <RowDefinition Height="auto" />
  56. <RowDefinition Height="*" />
  57. <RowDefinition Height="auto" />
  58. </Grid.RowDefinitions>
  59. <Button Grid.Row="0"
  60. Content="{materialDesign:PackIcon Kind=ArrowLeftCircle}"
  61. Width="50"
  62. HorizontalAlignment="Left"
  63. VerticalAlignment="Top"
  64. ToolTip="{lex:Loc 返回}"
  65. Style="{StaticResource MaterialDesignIconButton}"
  66. Command="{Binding BackCommand}" />
  67. <StackPanel Grid.Row="0"
  68. Orientation="Horizontal"
  69. Margin="50,0"
  70. VerticalAlignment="Center">
  71. <materialDesign:PackIcon Kind="CubeOutline"
  72. Width="30"
  73. Height="30" />
  74. <TextBlock Text="{Binding SelectProduct.Name}"
  75. VerticalAlignment="Center" />
  76. <TextBlock Text="{lex:Loc 机器人点位,Converter={StaticResource StringFormatConverter},ConverterParameter=' - {0}'}"
  77. VerticalAlignment="Center" />
  78. </StackPanel>
  79. <Border BorderThickness="1,1,1,1"
  80. VerticalAlignment="Bottom"
  81. Height="1">
  82. <Border.BorderBrush>
  83. <VisualBrush>
  84. <VisualBrush.Visual>
  85. <Rectangle StrokeDashArray="4 4"
  86. Stroke="LightGray"
  87. StrokeThickness="1"
  88. Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type Border}}, Path=ActualWidth}"
  89. Height="{Binding RelativeSource={RelativeSource AncestorType={x:Type Border}}, Path=ActualHeight}" />
  90. </VisualBrush.Visual>
  91. </VisualBrush>
  92. </Border.BorderBrush>
  93. </Border>
  94. <materialDesign:DrawerHost Grid.Row="1"
  95. OpenMode="Modal"
  96. x:Name="DrawerHost"
  97. IsEnabled="{Binding IsAllowEdit}">
  98. <!--<materialDesign:DrawerHost.RightDrawerContent>
  99. <local:TestProductPage Visibility="{Binding IsHaveRobot,Converter={StaticResource BooleanToVisibilityConverter}}" />
  100. </materialDesign:DrawerHost.RightDrawerContent>-->
  101. <Grid>
  102. <Grid.ColumnDefinitions>
  103. <ColumnDefinition Width="auto" />
  104. <ColumnDefinition Width="*" />
  105. </Grid.ColumnDefinitions>
  106. <Expander Grid.Column="0"
  107. ExpandDirection="Right"
  108. Background="Transparent">
  109. <Expander.Header>
  110. <TextBlock RenderTransformOrigin=".5,.5"
  111. Text="Navigation Description">
  112. <TextBlock.LayoutTransform>
  113. <RotateTransform Angle="90" />
  114. </TextBlock.LayoutTransform>
  115. </TextBlock>
  116. </Expander.Header>
  117. <ScrollViewer>
  118. <StackPanel Margin="8,24,16,24"
  119. Orientation="Vertical">
  120. <Image Source="pack://application:,,,/TeamAAS-VP;component/Resources/Images/9机器人点位.png"
  121. Stretch="Uniform"
  122. Width="350"
  123. HorizontalAlignment="Center"
  124. VerticalAlignment="Top" />
  125. <TextBlock Text="{lex:Loc 机器人点位示教}" />
  126. <TextBlock Foreground="Gray"
  127. TextWrapping="Wrap"
  128. Text="{lex:Loc 机器人点位示教描述}" />
  129. </StackPanel>
  130. </ScrollViewer>
  131. </Expander>
  132. <TabControl Grid.Column="1"
  133. ItemsSource="{Binding SelectProduct.RobotPoint.Robots}"
  134. SelectedItem="{Binding SelectedRobot, Mode=OneWayToSource}">
  135. <b:Interaction.Triggers>
  136. <b:EventTrigger EventName="SelectionChanged">
  137. <b:InvokeCommandAction Command="{Binding RobotSelectedChangedCommand}" />
  138. </b:EventTrigger>
  139. </b:Interaction.Triggers>
  140. <TabControl.Resources>
  141. <!-- 机器人类型转换器(可选) -->
  142. <DataTemplate DataType="{x:Type localRobot:RobotPointStore}">
  143. <StackPanel Orientation="Horizontal">
  144. <TextBlock Text="{Binding Name}"
  145. FontWeight="Bold" />
  146. <TextBlock Text=" ("
  147. Margin="5,0,0,0"
  148. Foreground="Gray" />
  149. <TextBlock Text="{Binding Points.Count}"
  150. Foreground="Gray" />
  151. <TextBlock Text=" 个点位)"
  152. Foreground="Gray" />
  153. </StackPanel>
  154. </DataTemplate>
  155. </TabControl.Resources>
  156. <TabControl.ContentTemplate>
  157. <DataTemplate DataType="{x:Type localRobot:RobotPointStore}">
  158. <Grid IsEnabled="{Binding DataContext.IsAllowEdit,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}">
  159. <Grid.RowDefinitions>
  160. <RowDefinition Height="*" />
  161. <RowDefinition Height="auto" />
  162. </Grid.RowDefinitions>
  163. <Grid.ColumnDefinitions>
  164. <ColumnDefinition Width="60*" />
  165. <ColumnDefinition Width="40*" />
  166. </Grid.ColumnDefinitions>
  167. <DataGrid x:Name="dgPoints"
  168. AutoGenerateColumns="False"
  169. CanUserAddRows="False"
  170. CanUserDeleteRows="False"
  171. ColumnWidth="*"
  172. SelectionUnit="FullRow"
  173. SelectionMode="Single"
  174. SelectedItem="{Binding DataContext.SelectedPointInDataGrid,RelativeSource={RelativeSource AncestorType={x:Type UserControl}},Mode=TwoWay}"
  175. ItemsSource="{Binding Points}"
  176. HeadersVisibility="Column"
  177. HorizontalScrollBarVisibility="Auto"
  178. ScrollViewer.CanContentScroll="True"
  179. ScrollViewer.HorizontalScrollBarVisibility="Auto"
  180. GridLinesVisibility="All"
  181. VerticalGridLinesBrush="#D0D0D0"
  182. PreviewKeyDown="dgPoints_PreviewKeyDown">
  183. <DataGrid.Resources>
  184. <Style TargetType="DataGridCell">
  185. <Style.Resources>
  186. <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"
  187. Color="#0078D7" />
  188. </Style.Resources>
  189. <Setter Property="MinHeight"
  190. Value="25" />
  191. <Setter Property="VerticalContentAlignment"
  192. Value="Center" />
  193. <Setter Property="HorizontalContentAlignment"
  194. Value="Center" />
  195. <Setter Property="VerticalAlignment"
  196. Value="Center" />
  197. <Setter Property="TextBlock.TextAlignment"
  198. Value="Center" />
  199. <Setter Property="Padding"
  200. Value="0" />
  201. <Style.Triggers>
  202. <Trigger Property="IsSelected"
  203. Value="True">
  204. <Setter Property="Foreground"
  205. Value="White" />
  206. </Trigger>
  207. </Style.Triggers>
  208. </Style>
  209. <!-- 为 TextBlock 添加默认居中样式 -->
  210. <Style TargetType="TextBlock">
  211. <Setter Property="TextAlignment"
  212. Value="Center" />
  213. <Setter Property="HorizontalAlignment"
  214. Value="Center" />
  215. <Setter Property="VerticalAlignment"
  216. Value="Center" />
  217. </Style>
  218. </DataGrid.Resources>
  219. <DataGrid.Columns>
  220. <DataGridTextColumn Header="{lex:Loc 编号}"
  221. IsReadOnly="True"
  222. MinWidth="60"
  223. Width="Auto"
  224. Binding="{Binding Number, Mode=TwoWay, StringFormat={}{0:F0}}">
  225. </DataGridTextColumn>
  226. <DataGridTextColumn Header="{lex:Loc 标签}"
  227. MinWidth="100"
  228. Width="Auto"
  229. Binding="{Binding Label, Mode=TwoWay}" />
  230. <!--X 坐标-->
  231. <DataGridTemplateColumn Header="X"
  232. MinWidth="60"
  233. Width="Auto">
  234. <DataGridTemplateColumn.CellTemplate>
  235. <DataTemplate>
  236. <TextBlock Text="{Binding X, StringFormat={}{0:F3}}"
  237. HorizontalAlignment="Center"
  238. VerticalAlignment="Center" />
  239. </DataTemplate>
  240. </DataGridTemplateColumn.CellTemplate>
  241. <DataGridTemplateColumn.CellEditingTemplate>
  242. <DataTemplate>
  243. <mah:NumericUpDown Value="{Binding X, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  244. Minimum="-9999.000"
  245. Maximum="9999.000"
  246. Interval="0.1"
  247. StringFormat="F3"
  248. HorizontalAlignment="Stretch"
  249. VerticalAlignment="Center"
  250. Margin="0"
  251. Padding="2" />
  252. </DataTemplate>
  253. </DataGridTemplateColumn.CellEditingTemplate>
  254. </DataGridTemplateColumn>
  255. <!--Y 坐标-->
  256. <DataGridTemplateColumn Header="Y"
  257. MinWidth="60"
  258. Width="Auto">
  259. <DataGridTemplateColumn.CellTemplate>
  260. <DataTemplate>
  261. <TextBlock Text="{Binding Y, StringFormat={}{0:F3}}"
  262. HorizontalAlignment="Center"
  263. VerticalAlignment="Center" />
  264. </DataTemplate>
  265. </DataGridTemplateColumn.CellTemplate>
  266. <DataGridTemplateColumn.CellEditingTemplate>
  267. <DataTemplate>
  268. <mah:NumericUpDown Value="{Binding Y, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  269. Minimum="-9999.000"
  270. Maximum="9999.000"
  271. Interval="0.1"
  272. StringFormat="F3"
  273. HorizontalAlignment="Stretch"
  274. VerticalAlignment="Center"
  275. Margin="0"
  276. Padding="2" />
  277. </DataTemplate>
  278. </DataGridTemplateColumn.CellEditingTemplate>
  279. </DataGridTemplateColumn>
  280. <!--Z 坐标-->
  281. <DataGridTemplateColumn Header="Z"
  282. MinWidth="60"
  283. Width="Auto">
  284. <DataGridTemplateColumn.CellTemplate>
  285. <DataTemplate>
  286. <TextBlock Text="{Binding Z, StringFormat={}{0:F3}}"
  287. HorizontalAlignment="Center"
  288. VerticalAlignment="Center" />
  289. </DataTemplate>
  290. </DataGridTemplateColumn.CellTemplate>
  291. <DataGridTemplateColumn.CellEditingTemplate>
  292. <DataTemplate>
  293. <mah:NumericUpDown Value="{Binding Z, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  294. Minimum="-9999.000"
  295. Maximum="9999.000"
  296. Interval="0.1"
  297. StringFormat="F3"
  298. HorizontalAlignment="Stretch"
  299. VerticalAlignment="Center"
  300. Margin="0"
  301. Padding="2" />
  302. </DataTemplate>
  303. </DataGridTemplateColumn.CellEditingTemplate>
  304. </DataGridTemplateColumn>
  305. <!--X 坐标-->
  306. <DataGridTemplateColumn Header="U"
  307. MinWidth="60"
  308. Width="Auto">
  309. <DataGridTemplateColumn.CellTemplate>
  310. <DataTemplate>
  311. <TextBlock Text="{Binding U, StringFormat={}{0:F3}}"
  312. HorizontalAlignment="Center"
  313. VerticalAlignment="Center" />
  314. </DataTemplate>
  315. </DataGridTemplateColumn.CellTemplate>
  316. <DataGridTemplateColumn.CellEditingTemplate>
  317. <DataTemplate>
  318. <mah:NumericUpDown Value="{Binding U, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  319. Minimum="-9999.000"
  320. Maximum="9999.000"
  321. Interval="0.1"
  322. StringFormat="F3"
  323. HorizontalAlignment="Stretch"
  324. VerticalAlignment="Center"
  325. Margin="0"
  326. Padding="2" />
  327. </DataTemplate>
  328. </DataGridTemplateColumn.CellEditingTemplate>
  329. </DataGridTemplateColumn>
  330. <!--V 坐标-->
  331. <DataGridTemplateColumn Header="V"
  332. MinWidth="60"
  333. Width="Auto">
  334. <DataGridTemplateColumn.CellTemplate>
  335. <DataTemplate>
  336. <TextBlock Text="{Binding V, StringFormat={}{0:F3}}"
  337. HorizontalAlignment="Center"
  338. VerticalAlignment="Center" />
  339. </DataTemplate>
  340. </DataGridTemplateColumn.CellTemplate>
  341. <DataGridTemplateColumn.CellEditingTemplate>
  342. <DataTemplate>
  343. <mah:NumericUpDown Value="{Binding V, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  344. Minimum="-9999.000"
  345. Maximum="9999.000"
  346. Interval="0.1"
  347. StringFormat="F3"
  348. HorizontalAlignment="Stretch"
  349. VerticalAlignment="Center"
  350. Margin="0"
  351. Padding="2" />
  352. </DataTemplate>
  353. </DataGridTemplateColumn.CellEditingTemplate>
  354. </DataGridTemplateColumn>
  355. <!--X 坐标-->
  356. <DataGridTemplateColumn Header="W"
  357. MinWidth="60"
  358. Width="Auto">
  359. <DataGridTemplateColumn.CellTemplate>
  360. <DataTemplate>
  361. <TextBlock Text="{Binding W, StringFormat={}{0:F3}}"
  362. HorizontalAlignment="Center"
  363. VerticalAlignment="Center" />
  364. </DataTemplate>
  365. </DataGridTemplateColumn.CellTemplate>
  366. <DataGridTemplateColumn.CellEditingTemplate>
  367. <DataTemplate>
  368. <mah:NumericUpDown Value="{Binding W, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  369. Minimum="-9999.000"
  370. Maximum="9999.000"
  371. Interval="0.1"
  372. StringFormat="F3"
  373. HorizontalAlignment="Stretch"
  374. VerticalAlignment="Center"
  375. Margin="0"
  376. Padding="2" />
  377. </DataTemplate>
  378. </DataGridTemplateColumn.CellEditingTemplate>
  379. </DataGridTemplateColumn>
  380. <materialDesign:DataGridComboBoxColumn Width="Auto"
  381. Header="Hand"
  382. IsEditable="True"
  383. MinWidth="60"
  384. ItemsSourceBinding="{Binding Source={StaticResource eRobotHand}}"
  385. SelectedValueBinding="{Binding Hand}">
  386. </materialDesign:DataGridComboBoxColumn>
  387. <DataGridTextColumn Header="Local"
  388. MinWidth="60"
  389. Width="Auto"
  390. Binding="{Binding Local, Mode=TwoWay, StringFormat={}{0:F0}}" />
  391. <DataGridTextColumn Header="Tool"
  392. MinWidth="60"
  393. Width="Auto"
  394. Binding="{Binding Tool, Mode=TwoWay, StringFormat={}{0:F0}}" />
  395. <DataGridTextColumn Header="{lex:Loc 描述}"
  396. MinWidth="100"
  397. Width="200"
  398. Binding="{Binding Description, Mode=TwoWay}" />
  399. </DataGrid.Columns>
  400. </DataGrid>
  401. <StackPanel Grid.Row="1"
  402. Orientation="Vertical">
  403. <StackPanel Orientation="Horizontal">
  404. <!--<Button Content="{lex:Loc 增加}"
  405. Margin="10"
  406. Command="{Binding AddPointCommand}" />
  407. <Button Content="{lex:Loc 移除}"
  408. Command="{Binding RemovePointCommand}" />-->
  409. <Button Content="{lex:Loc 托盘}"
  410. Margin="10"
  411. Command="{Binding DataContext.GoPalletCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
  412. </StackPanel>
  413. </StackPanel>
  414. <GridSplitter Grid.Column="0"
  415. Grid.Row="0"
  416. Grid.RowSpan="2"
  417. Width="2"
  418. Background="DeepSkyBlue"
  419. VerticalAlignment="Stretch"
  420. HorizontalAlignment="Right" />
  421. <Viewbox Grid.Column="1"
  422. Grid.RowSpan="2">
  423. <Grid>
  424. <Grid.RowDefinitions>
  425. <RowDefinition Height="auto" />
  426. <RowDefinition Height="*" />
  427. </Grid.RowDefinitions>
  428. <StackPanel Orientation="Horizontal"
  429. Grid.Row="0">
  430. <ComboBox materialDesign:HintAssist.Hint="{lex:Loc 选择Tool}"
  431. materialDesign:HintAssist.HelperText="{lex:Loc 选择Tool}"
  432. SelectedItem="{Binding DataContext.SelectTool,RelativeSource={RelativeSource AncestorType={x:Type UserControl}},Mode=TwoWay}"
  433. ItemsSource="{Binding DataContext.Tools,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
  434. </StackPanel>
  435. <Grid Grid.Row="1">
  436. <Grid.ColumnDefinitions>
  437. <ColumnDefinition Width="auto" />
  438. <ColumnDefinition Width="auto" />
  439. </Grid.ColumnDefinitions>
  440. <Grid Grid.Column="0"
  441. VerticalAlignment="Center">
  442. <Grid.RowDefinitions>
  443. <RowDefinition Height="auto" />
  444. <RowDefinition Height="auto" />
  445. <RowDefinition Height="auto" />
  446. <RowDefinition Height="auto" />
  447. <RowDefinition Height="auto" />
  448. </Grid.RowDefinitions>
  449. <Button Content="{lex:Loc 上使能}"
  450. Grid.Row="0"
  451. materialDesign:ButtonAssist.CornerRadius="10"
  452. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  453. Command="{Binding DataContext.MotorCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  454. CommandParameter="True" />
  455. <Button Content="{lex:Loc 下使能}"
  456. Grid.Row="1"
  457. Margin="0,10,0,10"
  458. materialDesign:ButtonAssist.CornerRadius="10"
  459. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  460. Command="{Binding DataContext.MotorCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  461. CommandParameter="False" />
  462. <Button Content="{lex:Loc 复位错误}"
  463. Grid.Row="2"
  464. materialDesign:ButtonAssist.CornerRadius="10"
  465. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  466. Command="{Binding DataContext.ResetCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
  467. <Button Content="{lex:Loc 释放刹车}"
  468. Grid.Row="3"
  469. Margin="0,10,0,10"
  470. materialDesign:ButtonAssist.CornerRadius="10"
  471. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  472. Command="{Binding DataContext.sFreeCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
  473. <Button Content="{lex:Loc 锁定刹车}"
  474. Grid.Row="4"
  475. materialDesign:ButtonAssist.CornerRadius="10"
  476. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  477. Command="{Binding DataContext.SLockCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
  478. </Grid>
  479. <Grid Grid.Column="1">
  480. <Grid.ColumnDefinitions>
  481. <ColumnDefinition Width="auto" />
  482. <ColumnDefinition Width="auto" />
  483. <ColumnDefinition Width="auto" />
  484. <ColumnDefinition Width="auto" />
  485. <ColumnDefinition Width="auto" />
  486. <ColumnDefinition Width="auto" />
  487. </Grid.ColumnDefinitions>
  488. <Grid.RowDefinitions>
  489. <RowDefinition Height="auto" />
  490. <RowDefinition Height="auto" />
  491. <RowDefinition Height="auto" />
  492. <RowDefinition Height="auto" />
  493. <RowDefinition Height="auto" />
  494. <RowDefinition Height="auto" />
  495. </Grid.RowDefinitions>
  496. <Grid.Resources>
  497. <Style TargetType="Button"
  498. BasedOn="{StaticResource MaterialDesignRaisedDarkButton}">
  499. <Setter Property="Width"
  500. Value="60" />
  501. <Setter Property="Height"
  502. Value="60" />
  503. <Setter Property="FontSize"
  504. Value="13" />
  505. <Setter Property="Padding"
  506. Value="0" />
  507. <Setter Property="HorizontalAlignment"
  508. Value="Center" />
  509. <Setter Property="VerticalAlignment"
  510. Value="Center" />
  511. <Setter Property="Margin"
  512. Value="2" />
  513. <Setter Property="materialDesign:ButtonAssist.CornerRadius"
  514. Value="10" />
  515. </Style>
  516. </Grid.Resources>
  517. <Button x:Name="btn_x"
  518. Grid.Row="1"
  519. Grid.Column="0"
  520. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  521. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=X-}">
  522. <StackPanel Orientation="Vertical">
  523. <materialDesign:PackIcon Kind="ArrowLeftBold"
  524. Width="26"
  525. Height="26" />
  526. <TextBlock Text="-X"
  527. HorizontalAlignment="Center" />
  528. </StackPanel>
  529. </Button>
  530. <Button Grid.Row="1"
  531. Grid.Column="2"
  532. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  533. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=X+}">
  534. <StackPanel Orientation="Vertical">
  535. <materialDesign:PackIcon Kind="ArrowRightBold"
  536. Width="26"
  537. Height="26" />
  538. <TextBlock Text="+X"
  539. HorizontalAlignment="Center" />
  540. </StackPanel>
  541. </Button>
  542. <Button Grid.Row="0"
  543. Grid.Column="1"
  544. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  545. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Y+}">
  546. <StackPanel Orientation="Vertical">
  547. <materialDesign:PackIcon Kind="ArrowTopBold"
  548. Width="26"
  549. Height="26" />
  550. <TextBlock Text="+Y"
  551. HorizontalAlignment="Center" />
  552. </StackPanel>
  553. </Button>
  554. <Button Grid.Row="2"
  555. Grid.Column="1"
  556. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  557. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Y-}">
  558. <StackPanel Orientation="Vertical">
  559. <materialDesign:PackIcon Kind="ArrowBottomBold"
  560. Width="26"
  561. Height="26" />
  562. <TextBlock Text="-Y"
  563. HorizontalAlignment="Center" />
  564. </StackPanel>
  565. </Button>
  566. <Button Grid.Row="0"
  567. Grid.Column="3"
  568. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  569. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Z+}">
  570. <StackPanel Orientation="Vertical">
  571. <materialDesign:PackIcon Kind="ArrowTopBold"
  572. Width="26"
  573. Height="26" />
  574. <TextBlock Text="+Z"
  575. HorizontalAlignment="Center" />
  576. </StackPanel>
  577. </Button>
  578. <Button Grid.Row="2"
  579. Grid.Column="3"
  580. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  581. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Z-}">
  582. <StackPanel Orientation="Vertical">
  583. <materialDesign:PackIcon Kind="ArrowBottomBold"
  584. Width="26"
  585. Height="26" />
  586. <TextBlock Text="-Z"
  587. HorizontalAlignment="Center" />
  588. </StackPanel>
  589. </Button>
  590. <Button Grid.Row="3"
  591. Grid.Column="0"
  592. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  593. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=U+}">
  594. <StackPanel Orientation="Vertical">
  595. <materialDesign:PackIcon Kind="AxisZRotateCounterclockwise"
  596. Width="26"
  597. Height="26" />
  598. <TextBlock Text="+U"
  599. HorizontalAlignment="Center" />
  600. </StackPanel>
  601. </Button>
  602. <Button Grid.Row="4"
  603. Grid.Column="0"
  604. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  605. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=U-}">
  606. <StackPanel Orientation="Vertical">
  607. <materialDesign:PackIcon Kind="AxisZRotateClockwise"
  608. Width="26"
  609. Height="26" />
  610. <TextBlock Text="-U"
  611. HorizontalAlignment="Center" />
  612. </StackPanel>
  613. </Button>
  614. <Button Grid.Row="3"
  615. Grid.Column="1"
  616. Grid.ColumnSpan="2"
  617. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  618. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=V+}">
  619. <StackPanel Orientation="Vertical">
  620. <materialDesign:PackIcon Kind="AxisYRotateCounterclockwise"
  621. Width="26"
  622. Height="26" />
  623. <TextBlock Text="+V"
  624. HorizontalAlignment="Center" />
  625. </StackPanel>
  626. </Button>
  627. <Button Grid.Row="4"
  628. Grid.Column="1"
  629. Grid.ColumnSpan="2"
  630. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  631. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=V-}">
  632. <StackPanel Orientation="Vertical">
  633. <materialDesign:PackIcon Kind="AxisYRotateClockwise"
  634. Width="26"
  635. Height="26" />
  636. <TextBlock Text="-V"
  637. HorizontalAlignment="Center" />
  638. </StackPanel>
  639. </Button>
  640. <Button Grid.Row="3"
  641. Grid.Column="3"
  642. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  643. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=W+}">
  644. <StackPanel Orientation="Vertical">
  645. <materialDesign:PackIcon Kind="AxisXRotateCounterclockwise"
  646. Width="26"
  647. Height="26" />
  648. <TextBlock Text="+W"
  649. HorizontalAlignment="Center" />
  650. </StackPanel>
  651. </Button>
  652. <Button Grid.Row="4"
  653. Grid.Column="3"
  654. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  655. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=W-}">
  656. <StackPanel Orientation="Vertical">
  657. <materialDesign:PackIcon Kind="AxisXRotateClockwise"
  658. Width="26"
  659. Height="26" />
  660. <TextBlock Text="-W"
  661. HorizontalAlignment="Center" />
  662. </StackPanel>
  663. </Button>
  664. <Grid Grid.Row="5"
  665. Grid.ColumnSpan="7"
  666. Margin="10">
  667. <Grid.RowDefinitions>
  668. <RowDefinition Height="auto" />
  669. <RowDefinition Height="auto" />
  670. <RowDefinition Height="auto" />
  671. <RowDefinition Height="auto" />
  672. </Grid.RowDefinitions>
  673. <Grid.ColumnDefinitions>
  674. <ColumnDefinition Width="auto" />
  675. <ColumnDefinition Width="auto" />
  676. <ColumnDefinition Width="auto" />
  677. </Grid.ColumnDefinitions>
  678. <TextBlock Grid.Row="0"
  679. Grid.Column="0"
  680. Text="{lex:Loc 步进距离,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  681. Margin="10"
  682. VerticalAlignment="Center"
  683. HorizontalAlignment="Right" />
  684. <uControl:myNumericUpDowm x:Name="txtDistance"
  685. Grid.Row="0"
  686. Grid.Column="1"
  687. MinWidth="100"
  688. Value="{Binding DataContext.Distance,RelativeSource={RelativeSource AncestorType={x:Type UserControl}},Mode=TwoWay}"
  689. Interval="0.1"
  690. Minimum="0"
  691. Maximum="100"
  692. StringFormat="{}{0:N3} mm"
  693. Margin="10"
  694. materialDesign:HintAssist.Hint="{lex:Loc 步进距离}" />
  695. <TextBlock Grid.Row="1"
  696. Grid.Column="0"
  697. Text="{lex:Loc 点编号,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  698. Margin="10"
  699. VerticalAlignment="Center" />
  700. <ComboBox x:Name="cmbSelectPoint"
  701. Grid.Row="2"
  702. Grid.Column="0"
  703. MinWidth="80"
  704. materialDesign:HintAssist.Hint="{lex:Loc 选择点}"
  705. Margin="10,5"
  706. ItemsSource="{Binding Points}"
  707. SelectedItem="{Binding DataContext.SelectedPointInComboBox,RelativeSource={RelativeSource AncestorType={x:Type UserControl}},Mode=TwoWay}">
  708. <ComboBox.ItemTemplate>
  709. <DataTemplate>
  710. <StackPanel HorizontalAlignment="Left"
  711. Orientation="Horizontal">
  712. <TextBlock Text="{Binding Number,StringFormat={}{0}:}" />
  713. <TextBlock Text="{Binding Label}" />
  714. </StackPanel>
  715. </DataTemplate>
  716. </ComboBox.ItemTemplate>
  717. </ComboBox>
  718. <TextBlock Grid.Row="1"
  719. Grid.Column="1"
  720. Text="{lex:Loc 动作指令,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  721. Margin="10"
  722. VerticalAlignment="Center" />
  723. <ComboBox x:Name="cmbSelectMotioncmd"
  724. Grid.Row="2"
  725. Grid.Column="1"
  726. MinWidth="80"
  727. Margin="10,5"
  728. materialDesign:HintAssist.Hint="{lex:Loc 动作指令}"
  729. ItemsSource="{ext:EnumBindingSource EnumType=enums:MotionCommand}"
  730. SelectedItem="{Binding DataContext.SelectMotionCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
  731. <Button Grid.Row="2"
  732. Grid.Column="2"
  733. Content="{lex:Loc 执行动作}"
  734. Margin="10,5"
  735. Command="{Binding DataContext.ExecuteMotion,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}">
  736. <Button.CommandParameter>
  737. <MultiBinding Converter="{StaticResource MultiParameterConverter}">
  738. <Binding ElementName="cmbSelectPoint"
  739. Path="SelectedItem" />
  740. <Binding ElementName="cmbSelectMotioncmd"
  741. Path="SelectedItem" />
  742. </MultiBinding>
  743. </Button.CommandParameter>
  744. </Button>
  745. <Button Grid.Row="3"
  746. Grid.Column="0"
  747. Content="{lex:Loc 示教}"
  748. Margin="10"
  749. HorizontalAlignment="Right"
  750. Command="{Binding DataContext.TechPointCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  751. CommandParameter="{Binding ElementName=cmbSelectPoint,Path=SelectedItem}" />
  752. <ToggleButton Grid.Row="3"
  753. Grid.Column="2"
  754. HorizontalAlignment="Right"
  755. VerticalAlignment="Center"
  756. Visibility="{Binding IsHaveRobot,Converter={StaticResource BooleanToVisibilityConverter}}"
  757. materialDesign:ToggleButtonAssist.OnContent="{materialDesign:PackIcon Kind=ArrowRight}"
  758. Content="{materialDesign:PackIcon Kind=ProgressWrench}"
  759. Style="{StaticResource MaterialDesignActionToggleButton}"
  760. ToolTip="{lex:Loc 手动验证流程}"
  761. Margin="5,0"
  762. IsChecked="{Binding IsRightDrawerOpen,ElementName=DrawerHost}" />
  763. </Grid>
  764. </Grid>
  765. </Grid>
  766. </Grid>
  767. </Viewbox>
  768. </Grid>
  769. </DataTemplate>
  770. </TabControl.ContentTemplate>
  771. </TabControl>
  772. </Grid>
  773. </materialDesign:DrawerHost>
  774. <StackPanel Grid.Row="2"
  775. Orientation="Horizontal"
  776. HorizontalAlignment="Center"
  777. VerticalAlignment="Center"
  778. Margin="20">
  779. <Button Content="{lex:Loc 下一步}"
  780. IsEnabled="{Binding IsAllowEdit}"
  781. MinWidth="100"
  782. HorizontalAlignment="Center"
  783. VerticalAlignment="Center"
  784. materialDesign:ButtonAssist.CornerRadius="10"
  785. Style="{StaticResource MaterialDesignRaisedButton}"
  786. Command="{Binding NextCommand}" />
  787. </StackPanel>
  788. </Grid>
  789. </UserControl>