HomeView.xaml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. <UserControl x:Class="TeamAAS_VP.Views.HomeView"
  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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
  8. xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
  9. xmlns:local="clr-namespace:TeamAAS_VP.Views.Home"
  10. xmlns:vm="clr-namespace:TeamAAS_VP.ViewModels"
  11. xmlns:oxy="http://oxyplot.org/wpf"
  12. xmlns:lex="http://wpflocalizeextension.codeplex.com"
  13. lex:LocalizeDictionary.DesignCulture="zh-CN"
  14. lex:ResxLocalizationProvider.DefaultAssembly="TeamAAS-VP"
  15. lex:ResxLocalizationProvider.DefaultDictionary="Lang"
  16. prism:ViewModelLocator.AutoWireViewModel="True"
  17. mc:Ignorable="d"
  18. d:Height="600"
  19. d:Width="1024"
  20. d:Background="White"
  21. d:DataContext="{d:DesignInstance Type=vm:HomeViewModel}"
  22. Background="Transparent"
  23. FontFamily="{DynamicResource DefaultFont}">
  24. <b:Interaction.Triggers>
  25. <b:EventTrigger EventName="Loaded">
  26. <b:InvokeCommandAction Command="{Binding LoadedCommand}" />
  27. </b:EventTrigger>
  28. </b:Interaction.Triggers>
  29. <Grid>
  30. <Grid.RowDefinitions>
  31. <RowDefinition Height="auto" />
  32. <RowDefinition Height="*" />
  33. </Grid.RowDefinitions>
  34. <Grid.ColumnDefinitions>
  35. <ColumnDefinition Width="60*" />
  36. <ColumnDefinition Width="40*" />
  37. </Grid.ColumnDefinitions>
  38. <!--产品-->
  39. <StackPanel Grid.Row="0"
  40. Grid.Column="0"
  41. Orientation="Vertical"
  42. Margin="10">
  43. <StackPanel Orientation="Horizontal"
  44. HorizontalAlignment="Left"
  45. VerticalAlignment="Center">
  46. <TextBlock Text="{lex:Loc 产品列表,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  47. FontSize="{DynamicResource Font.Size.Body2}"
  48. VerticalAlignment="Center" />
  49. <ComboBox x:Name="selectProduct"
  50. MinWidth="100"
  51. Margin="20,0"
  52. FontSize="{DynamicResource Font.Size.Body3}"
  53. materialDesign:HintAssist.Hint="{lex:Loc 选择产品}"
  54. SelectedItem="{Binding SelectProduct}"
  55. ItemsSource="{Binding management.Products}">
  56. <ComboBox.ItemTemplate>
  57. <DataTemplate>
  58. <StackPanel Orientation="Vertical">
  59. <StackPanel Orientation="Horizontal">
  60. <materialDesign:PackIcon Kind="CubeOutline" />
  61. <TextBlock Text="{Binding Name}" />
  62. </StackPanel>
  63. <TextBlock Text="{Binding Description}"
  64. MinHeight="0"
  65. MaxWidth="300"
  66. Foreground="Gray"
  67. TextTrimming="CharacterEllipsis"
  68. FontSize="{DynamicResource Font.Size.Captions4}"
  69. TextWrapping="Wrap" />
  70. </StackPanel>
  71. </DataTemplate>
  72. </ComboBox.ItemTemplate>
  73. </ComboBox>
  74. <Button Content="{lex:Loc 加载}"
  75. materialDesign:ButtonAssist.CornerRadius="10"
  76. Style="{StaticResource MaterialDesignRaisedButton}"
  77. Margin="20,0,0,0"
  78. Command="{Binding LoadProductCommand}"
  79. CommandParameter="{Binding ElementName=selectProduct,Path=SelectedItem}" />
  80. </StackPanel>
  81. <StackPanel Margin="0,10,0,10"
  82. HorizontalAlignment="Left"
  83. VerticalAlignment="Center"
  84. Orientation="Horizontal">
  85. <TextBlock Text="{lex:Loc 当前产品,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  86. FontSize="{DynamicResource Font.Size.Body2}"
  87. Foreground="Green"
  88. VerticalAlignment="Center" />
  89. <TextBlock Text="{Binding management.CurrentProduct.Name}"
  90. FontSize="{DynamicResource Font.Size.Body3}"
  91. Margin="10,0"
  92. FontWeight="Bold"
  93. VerticalAlignment="Center" />
  94. <TextBlock Text="{lex:Loc 产品编号,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  95. FontSize="{DynamicResource Font.Size.Body2}"
  96. Foreground="Green"
  97. VerticalAlignment="Center" />
  98. <TextBox Width="150"
  99. FontSize="{DynamicResource Font.Size.Body3}"
  100. Margin="10,0"
  101. Text="{Binding management.CurrentProduct.NumberCode}" />
  102. </StackPanel>
  103. </StackPanel>
  104. <!--图像-->
  105. <local:ShowVisionRender Grid.Row="1"
  106. Grid.Column="0" />
  107. <!--<Button Content="全屏"
  108. Grid.Column="1"
  109. Margin="10"
  110. HorizontalAlignment="Right"
  111. VerticalAlignment="Top"
  112. Visibility="Hidden"
  113. materialDesign:ButtonAssist.CornerRadius="10"
  114. Style="{StaticResource MaterialDesignRaisedButton}" />-->
  115. <Grid Grid.Row="0"
  116. Grid.RowSpan="2"
  117. Grid.Column="1">
  118. <Grid.RowDefinitions>
  119. <RowDefinition Height="70*" />
  120. <RowDefinition Height="30*" />
  121. </Grid.RowDefinitions>
  122. <Grid Grid.Row="0">
  123. <Grid.RowDefinitions>
  124. <RowDefinition Height="0" />
  125. <RowDefinition Height="*" />
  126. </Grid.RowDefinitions>
  127. <Grid HorizontalAlignment="Center"
  128. VerticalAlignment="Top">
  129. <Grid.RowDefinitions>
  130. <RowDefinition Height="auto" />
  131. <RowDefinition Height="auto" />
  132. </Grid.RowDefinitions>
  133. <Grid.ColumnDefinitions>
  134. <ColumnDefinition Width="auto" />
  135. <ColumnDefinition Width="auto" />
  136. <ColumnDefinition Width="auto" />
  137. <ColumnDefinition Width="auto" />
  138. <ColumnDefinition Width="auto" />
  139. </Grid.ColumnDefinitions>
  140. <Grid.Resources>
  141. <Style TargetType="TextBlock">
  142. <Setter Property="FontSize"
  143. Value="{DynamicResource Font.Size.Body2}" />
  144. <Setter Property="FontWeight"
  145. Value="Bold" />
  146. <Setter Property="Margin"
  147. Value="5" />
  148. <Setter Property="MinWidth"
  149. Value="100" />
  150. <Setter Property="HorizontalAlignment"
  151. Value="Center" />
  152. <Setter Property="VerticalAlignment"
  153. Value="Center" />
  154. <Setter Property="TextAlignment"
  155. Value="Center" />
  156. <Setter Property="TextTrimming"
  157. Value="CharacterEllipsis" />
  158. </Style>
  159. </Grid.Resources>
  160. <TextBlock Text="{lex:Loc 当前产品总产量,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  161. FontWeight="Bold"
  162. HorizontalAlignment="Right"
  163. TextAlignment="Right" />
  164. <Border Grid.Row="0"
  165. Grid.Column="1"
  166. VerticalAlignment="Bottom"
  167. BorderBrush="Gray"
  168. BorderThickness="1" />
  169. <TextBlock Grid.Row="0"
  170. Grid.Column="1"
  171. Text="{Binding management.TotalQuantity}" />
  172. <TextBlock Grid.Row="0"
  173. Grid.Column="2"
  174. Text="{lex:Loc 今日产量,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  175. HorizontalAlignment="Right"
  176. TextAlignment="Right" />
  177. <Border Grid.Row="0"
  178. Grid.Column="3"
  179. VerticalAlignment="Bottom"
  180. BorderBrush="Gray"
  181. BorderThickness="1" />
  182. <TextBlock Grid.Row="0"
  183. Grid.Column="3"
  184. Text="{Binding management.TotalQuantityToday}" />
  185. <TextBlock Grid.Row="1"
  186. Grid.Column="0"
  187. Text="UPH:"
  188. HorizontalAlignment="Right"
  189. TextAlignment="Right" />
  190. <Border Grid.Row="1"
  191. Grid.Column="1"
  192. VerticalAlignment="Center"
  193. BorderBrush="Gray"
  194. BorderThickness="1"
  195. Margin="0,30,0,0"/>
  196. <TextBlock Grid.Row="1"
  197. Grid.Column="1"
  198. Text="{Binding management.TotalQuantityToday}" />
  199. <TextBlock Grid.Row="1"
  200. Grid.Column="2"
  201. Text="CT: "
  202. TextAlignment="Right"
  203. FontWeight="Bold"
  204. FontSize="{DynamicResource Font.Size.Body2}"
  205. VerticalAlignment="Center" />
  206. <TextBlock Grid.Row="1"
  207. Grid.Column="3"
  208. Text="{Binding CTTotalSeconds,StringFormat={}{0:F2} s}"
  209. FontSize="{DynamicResource Font.Size.Body3}"
  210. VerticalAlignment="Center" />
  211. <Button Grid.Row="1"
  212. Grid.Column="4"
  213. Content="{lex:Loc 计数清零}"
  214. VerticalAlignment="Bottom"
  215. Margin="20"
  216. HorizontalAlignment="Right"
  217. materialDesign:ButtonAssist.CornerRadius="10"
  218. Style="{StaticResource MaterialDesignRaisedButton}"
  219. Command="{Binding ResetCounterCommand}" />
  220. </Grid>
  221. <Grid Grid.Row="1">
  222. <Grid.RowDefinitions>
  223. <!-- 列表固定高度,不与曲线争用弹性空间 -->
  224. <RowDefinition Height="Auto" />
  225. <RowDefinition Height="*" MinHeight="200" />
  226. </Grid.RowDefinitions>
  227. <!-- 锁付结果列表 -->
  228. <DockPanel Grid.Row="0"
  229. LastChildFill="True"
  230. Margin="8,8,8,4">
  231. <TextBlock DockPanel.Dock="Top"
  232. FontWeight="Bold"
  233. FontSize="{DynamicResource Font.Size.Body3}"
  234. Text="{lex:Loc 锁付结果}" />
  235. <DataGrid x:Name="lockResultGrid"
  236. ItemsSource="{Binding LockResults}"
  237. AutoGenerateColumns="False"
  238. CanUserAddRows="False"
  239. CanUserDeleteRows="False"
  240. IsReadOnly="True"
  241. HeadersVisibility="Column"
  242. GridLinesVisibility="Horizontal"
  243. HorizontalGridLinesBrush="#E0E0E0"
  244. RowHeaderWidth="0"
  245. Height="118"
  246. ColumnHeaderHeight="26"
  247. RowHeight="24"
  248. FontSize="{DynamicResource Font.Size.Captions3}"
  249. ScrollViewer.HorizontalScrollBarVisibility="Disabled"
  250. ScrollViewer.VerticalScrollBarVisibility="Auto"
  251. Margin="0,6,0,0">
  252. <DataGrid.Resources>
  253. <Style TargetType="DataGridColumnHeader">
  254. <Setter Property="HorizontalContentAlignment"
  255. Value="Center" />
  256. <Setter Property="FontWeight"
  257. Value="SemiBold" />
  258. <Setter Property="Padding"
  259. Value="4,2" />
  260. </Style>
  261. <Style TargetType="DataGridCell">
  262. <Setter Property="Padding"
  263. Value="4,2" />
  264. <Setter Property="HorizontalContentAlignment"
  265. Value="Center" />
  266. </Style>
  267. </DataGrid.Resources>
  268. <DataGrid.Columns>
  269. <DataGridTextColumn Header="#"
  270. Binding="{Binding Number}"
  271. Width="32"
  272. IsReadOnly="True" />
  273. <DataGridTextColumn Header="{lex:Loc 时间}"
  274. Binding="{Binding Timestamp, StringFormat={}{0:HH:mm:ss}}"
  275. Width="64"
  276. IsReadOnly="True" />
  277. <DataGridTextColumn Header="{lex:Loc 程序号}"
  278. Binding="{Binding ScrewdriverProgramNumber}"
  279. Width="48"
  280. IsReadOnly="True" />
  281. <DataGridTextColumn Header="{lex:Loc 锁付圈数}"
  282. Binding="{Binding LockTurns, StringFormat={}{0:F1}}"
  283. Width="56"
  284. IsReadOnly="True" />
  285. <DataGridTextColumn Header="{lex:Loc 锁付扭矩}"
  286. Binding="{Binding LockTorque, StringFormat={}{0:F3}}"
  287. Width="64"
  288. IsReadOnly="True" />
  289. <DataGridTextColumn Header="{lex:Loc 锁付用时}"
  290. Binding="{Binding LockDuration, StringFormat={}{0:F2}s}"
  291. Width="56"
  292. IsReadOnly="True" />
  293. <DataGridTemplateColumn Header="{lex:Loc 锁付结果}"
  294. Width="44"
  295. IsReadOnly="True">
  296. <DataGridTemplateColumn.CellTemplate>
  297. <DataTemplate>
  298. <Border x:Name="bd"
  299. Padding="4,2"
  300. CornerRadius="4"
  301. Background="Transparent"
  302. HorizontalAlignment="Center"
  303. VerticalAlignment="Center">
  304. <TextBlock x:Name="txt"
  305. HorizontalAlignment="Center"
  306. VerticalAlignment="Center"
  307. Foreground="White"
  308. FontWeight="Bold" />
  309. </Border>
  310. <DataTemplate.Triggers>
  311. <DataTrigger Binding="{Binding LockPassed}"
  312. Value="True">
  313. <Setter TargetName="bd"
  314. Property="Background"
  315. Value="Green" />
  316. <Setter TargetName="txt"
  317. Property="Text"
  318. Value="OK" />
  319. </DataTrigger>
  320. <DataTrigger Binding="{Binding LockPassed}"
  321. Value="False">
  322. <Setter TargetName="bd"
  323. Property="Background"
  324. Value="Red" />
  325. <Setter TargetName="txt"
  326. Property="Text"
  327. Value="NG" />
  328. </DataTrigger>
  329. </DataTemplate.Triggers>
  330. </DataTemplate>
  331. </DataGridTemplateColumn.CellTemplate>
  332. </DataGridTemplateColumn>
  333. </DataGrid.Columns>
  334. </DataGrid>
  335. </DockPanel>
  336. <!-- 锁付曲线(占据列表下方全部剩余空间) -->
  337. <Grid Grid.Row="1"
  338. Margin="8,2,8,8"
  339. MinHeight="200">
  340. <oxy:PlotView Model="{Binding LockCurvePlotModel}"
  341. Background="Transparent" />
  342. <Border HorizontalAlignment="Left"
  343. VerticalAlignment="Top"
  344. Margin="12,8,0,0"
  345. Padding="10,6"
  346. CornerRadius="6"
  347. Background="#E6FFFFFF"
  348. BorderBrush="#CCCCCC"
  349. BorderThickness="1">
  350. <StackPanel Orientation="Horizontal">
  351. <StackPanel Orientation="Horizontal"
  352. Margin="0,0,20,0">
  353. <TextBlock Text="{lex:Loc 实时扭矩, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}{0}: '}"
  354. FontWeight="SemiBold"
  355. FontSize="{DynamicResource Font.Size.Body3}"
  356. VerticalAlignment="Center" />
  357. <TextBlock Text="{Binding LiveLockTorque, StringFormat={}{0:F3}}"
  358. FontWeight="Bold"
  359. FontSize="{DynamicResource Font.Size.Body3}"
  360. VerticalAlignment="Center"
  361. MinWidth="56" />
  362. </StackPanel>
  363. <StackPanel Orientation="Horizontal">
  364. <TextBlock Text="{lex:Loc 实时圈数, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}{0}: '}"
  365. FontWeight="SemiBold"
  366. FontSize="{DynamicResource Font.Size.Body3}"
  367. VerticalAlignment="Center" />
  368. <TextBlock Text="{Binding LiveLockTurns, StringFormat={}{0:F1}}"
  369. FontWeight="Bold"
  370. FontSize="{DynamicResource Font.Size.Body3}"
  371. VerticalAlignment="Center"
  372. MinWidth="40" />
  373. </StackPanel>
  374. </StackPanel>
  375. </Border>
  376. </Grid>
  377. </Grid>
  378. </Grid>
  379. <Border Grid.Row="1"
  380. CornerRadius="20"
  381. BorderBrush="#787878"
  382. BorderThickness="1">
  383. <DockPanel LastChildFill="True"
  384. Margin="10">
  385. <TextBlock Text="{lex:Loc 运行信息,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  386. FontWeight="Bold"
  387. FontSize="{DynamicResource Font.Size.Body3}"
  388. DockPanel.Dock="Top" />
  389. <ListView x:Name="messagelist"
  390. ItemsSource="{Binding MessageQueue}"
  391. ScrollViewer.VerticalScrollBarVisibility="Auto"
  392. ScrollViewer.CanContentScroll="False"
  393. BorderThickness="0"
  394. Background="Transparent"
  395. ScrollViewer.HorizontalScrollBarVisibility="Disabled">
  396. <ListView.Resources>
  397. <Style TargetType="{x:Type GridViewHeaderRowPresenter}">
  398. <Setter Property="FrameworkElement.Visibility"
  399. Value="Collapsed" />
  400. </Style>
  401. </ListView.Resources>
  402. <ListView.ItemContainerStyle>
  403. <Style TargetType="ListViewItem">
  404. <Setter Property="HorizontalContentAlignment"
  405. Value="Left" />
  406. <Setter Property="VerticalContentAlignment"
  407. Value="Top" />
  408. </Style>
  409. </ListView.ItemContainerStyle>
  410. <ListView.ItemTemplate>
  411. <DataTemplate>
  412. <Border BorderThickness="0"
  413. HorizontalAlignment="Left">
  414. <Label MaxWidth="300"
  415. BorderThickness="0"
  416. Background="Transparent"
  417. Margin="0"
  418. Padding="0"
  419. HorizontalAlignment="Left"
  420. VerticalAlignment="Center"
  421. FontSize="10">
  422. <TextBlock TextWrapping="Wrap"
  423. TextAlignment="Left"
  424. FontSize="{DynamicResource Font.Size.Captions3}"
  425. Foreground="{Binding FontColol}">
  426. <TextBlock.Text>
  427. <MultiBinding StringFormat="{}[{0:M/d HH:mm:ss}]:{1}">
  428. <Binding Path="DT" />
  429. <Binding Path="Message" />
  430. </MultiBinding>
  431. </TextBlock.Text>
  432. </TextBlock>
  433. <Label.ContextMenu>
  434. <ContextMenu>
  435. <MenuItem Header="Copy"
  436. Command="{Binding DataContext.CopyCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"
  437. CommandParameter="{Binding Message}"
  438. Icon="{materialDesign:PackIcon Kind=ContentCopy}" />
  439. </ContextMenu>
  440. </Label.ContextMenu>
  441. </Label>
  442. </Border>
  443. </DataTemplate>
  444. </ListView.ItemTemplate>
  445. </ListView>
  446. </DockPanel>
  447. </Border>
  448. </Grid>
  449. </Grid>
  450. </UserControl>