RobotPointParams.xaml 57 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737
  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. <Button x:Name="btn_x"
  497. Content="X-"
  498. Grid.Row="1"
  499. Grid.Column="0"
  500. Margin="10,10,10,10"
  501. materialDesign:ButtonAssist.CornerRadius="10"
  502. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  503. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  504. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=X-}" />
  505. <Button Content="X+"
  506. Grid.Row="1"
  507. Grid.Column="2"
  508. Margin="10,10,10,10"
  509. materialDesign:ButtonAssist.CornerRadius="10"
  510. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  511. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  512. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=X+}" />
  513. <Button Content="Y+"
  514. Grid.Row="0"
  515. Grid.Column="1"
  516. Margin="10,10,10,10"
  517. materialDesign:ButtonAssist.CornerRadius="10"
  518. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  519. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  520. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Y+}" />
  521. <Button Content="Y-"
  522. Grid.Row="2"
  523. Grid.Column="1"
  524. Margin="10,10,10,10"
  525. materialDesign:ButtonAssist.CornerRadius="10"
  526. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  527. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  528. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Y-}" />
  529. <Button Content="Z+"
  530. Grid.Row="0"
  531. Grid.Column="3"
  532. Margin="10,10,10,10"
  533. materialDesign:ButtonAssist.CornerRadius="10"
  534. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  535. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  536. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Z+}" />
  537. <Button Content="Z-"
  538. Grid.Row="2"
  539. Grid.Column="3"
  540. Margin="10,10,10,10"
  541. materialDesign:ButtonAssist.CornerRadius="10"
  542. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  543. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  544. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=Z-}" />
  545. <Button Content="U+"
  546. Grid.Row="3"
  547. Grid.Column="0"
  548. Margin="10,10,10,10"
  549. materialDesign:ButtonAssist.CornerRadius="10"
  550. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  551. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  552. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=U+}" />
  553. <Button Content="U-"
  554. Grid.Row="4"
  555. Grid.Column="0"
  556. Margin="10,10,10,10"
  557. materialDesign:ButtonAssist.CornerRadius="10"
  558. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  559. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  560. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=U-}" />
  561. <Button Content="V+"
  562. Grid.Row="3"
  563. Grid.Column="1"
  564. Grid.ColumnSpan="2"
  565. Width="{Binding ElementName=btn_x,Path=Width}"
  566. Margin="10,10,10,10"
  567. materialDesign:ButtonAssist.CornerRadius="10"
  568. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  569. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  570. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=V+}" />
  571. <Button Content="V-"
  572. Grid.Row="4"
  573. Grid.Column="1"
  574. Grid.ColumnSpan="2"
  575. Width="{Binding ElementName=btn_x,Path=Width}"
  576. Margin="10,10,10,10"
  577. materialDesign:ButtonAssist.CornerRadius="10"
  578. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  579. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  580. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=V-}" />
  581. <Button Content="W+"
  582. Grid.Row="3"
  583. Grid.Column="3"
  584. Margin="10,10,10,10"
  585. materialDesign:ButtonAssist.CornerRadius="10"
  586. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  587. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  588. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=W+}" />
  589. <Button Content="W-"
  590. Grid.Row="4"
  591. Grid.Column="3"
  592. Margin="10,10,10,10"
  593. materialDesign:ButtonAssist.CornerRadius="10"
  594. Style="{StaticResource MaterialDesignRaisedDarkButton}"
  595. Command="{Binding DataContext.JogCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  596. CommandParameter="{Binding ElementName=txtDistance,Path=Value,Converter={StaticResource JogConverter}, ConverterParameter=W-}" />
  597. <Grid Grid.Row="5"
  598. Grid.ColumnSpan="7"
  599. Margin="10">
  600. <Grid.RowDefinitions>
  601. <RowDefinition Height="auto" />
  602. <RowDefinition Height="auto" />
  603. <RowDefinition Height="auto" />
  604. <RowDefinition Height="auto" />
  605. </Grid.RowDefinitions>
  606. <Grid.ColumnDefinitions>
  607. <ColumnDefinition Width="auto" />
  608. <ColumnDefinition Width="auto" />
  609. <ColumnDefinition Width="auto" />
  610. </Grid.ColumnDefinitions>
  611. <TextBlock Grid.Row="0"
  612. Grid.Column="0"
  613. Text="{lex:Loc 步进距离,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  614. Margin="10"
  615. VerticalAlignment="Center"
  616. HorizontalAlignment="Right" />
  617. <uControl:myNumericUpDowm x:Name="txtDistance"
  618. Grid.Row="0"
  619. Grid.Column="1"
  620. MinWidth="100"
  621. Value="{Binding DataContext.Distance,RelativeSource={RelativeSource AncestorType={x:Type UserControl}},Mode=TwoWay}"
  622. Interval="0.1"
  623. Minimum="0"
  624. Maximum="100"
  625. StringFormat="{}{0:N3} mm"
  626. Margin="10"
  627. materialDesign:HintAssist.Hint="{lex:Loc 步进距离}" />
  628. <TextBlock Grid.Row="1"
  629. Grid.Column="0"
  630. Text="{lex:Loc 点编号,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  631. Margin="10"
  632. VerticalAlignment="Center" />
  633. <ComboBox x:Name="cmbSelectPoint"
  634. Grid.Row="2"
  635. Grid.Column="0"
  636. MinWidth="80"
  637. materialDesign:HintAssist.Hint="{lex:Loc 选择点}"
  638. Margin="10,5"
  639. ItemsSource="{Binding Points}"
  640. SelectedItem="{Binding DataContext.SelectedPointInComboBox,RelativeSource={RelativeSource AncestorType={x:Type UserControl}},Mode=TwoWay}">
  641. <ComboBox.ItemTemplate>
  642. <DataTemplate>
  643. <StackPanel HorizontalAlignment="Left"
  644. Orientation="Horizontal">
  645. <TextBlock Text="{Binding Number,StringFormat={}{0}:}" />
  646. <TextBlock Text="{Binding Description}" />
  647. </StackPanel>
  648. </DataTemplate>
  649. </ComboBox.ItemTemplate>
  650. </ComboBox>
  651. <TextBlock Grid.Row="1"
  652. Grid.Column="1"
  653. Text="{lex:Loc 动作指令,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  654. Margin="10"
  655. VerticalAlignment="Center" />
  656. <ComboBox x:Name="cmbSelectMotioncmd"
  657. Grid.Row="2"
  658. Grid.Column="1"
  659. MinWidth="80"
  660. Margin="10,5"
  661. materialDesign:HintAssist.Hint="{lex:Loc 动作指令}"
  662. ItemsSource="{ext:EnumBindingSource EnumType=enums:MotionCommand}"
  663. SelectedItem="{Binding DataContext.SelectMotionCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
  664. <Button Grid.Row="2"
  665. Grid.Column="2"
  666. Content="{lex:Loc 执行动作}"
  667. Margin="10,5"
  668. Command="{Binding DataContext.ExecuteMotion,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}">
  669. <Button.CommandParameter>
  670. <MultiBinding Converter="{StaticResource MultiParameterConverter}">
  671. <Binding ElementName="cmbSelectPoint"
  672. Path="SelectedItem" />
  673. <Binding ElementName="cmbSelectMotioncmd"
  674. Path="SelectedItem" />
  675. </MultiBinding>
  676. </Button.CommandParameter>
  677. </Button>
  678. <Button Grid.Row="3"
  679. Grid.Column="0"
  680. Content="{lex:Loc 示教}"
  681. Margin="10"
  682. HorizontalAlignment="Right"
  683. Command="{Binding DataContext.TechPointCommand,RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  684. CommandParameter="{Binding ElementName=cmbSelectPoint,Path=SelectedItem}" />
  685. <ToggleButton Grid.Row="3"
  686. Grid.Column="2"
  687. HorizontalAlignment="Right"
  688. VerticalAlignment="Center"
  689. Visibility="{Binding IsHaveRobot,Converter={StaticResource BooleanToVisibilityConverter}}"
  690. materialDesign:ToggleButtonAssist.OnContent="{materialDesign:PackIcon Kind=ArrowRight}"
  691. Content="{materialDesign:PackIcon Kind=ProgressWrench}"
  692. Style="{StaticResource MaterialDesignActionToggleButton}"
  693. ToolTip="{lex:Loc 手动验证流程}"
  694. Margin="5,0"
  695. IsChecked="{Binding IsRightDrawerOpen,ElementName=DrawerHost}" />
  696. </Grid>
  697. </Grid>
  698. </Grid>
  699. </Grid>
  700. </Viewbox>
  701. </Grid>
  702. </DataTemplate>
  703. </TabControl.ContentTemplate>
  704. </TabControl>
  705. </Grid>
  706. </materialDesign:DrawerHost>
  707. <StackPanel Grid.Row="2"
  708. Orientation="Horizontal"
  709. HorizontalAlignment="Center"
  710. VerticalAlignment="Center"
  711. Margin="20">
  712. <Button Content="{lex:Loc 下一步}"
  713. IsEnabled="{Binding IsAllowEdit}"
  714. MinWidth="100"
  715. HorizontalAlignment="Center"
  716. VerticalAlignment="Center"
  717. materialDesign:ButtonAssist.CornerRadius="10"
  718. Style="{StaticResource MaterialDesignRaisedButton}"
  719. Command="{Binding NextCommand}" />
  720. </StackPanel>
  721. </Grid>
  722. </UserControl>