MainWindowView.xaml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. <Window
  2. x:Class="TeamAAS_VP.Views.MainWindowView"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
  6. xmlns:converter="clr-namespace:TeamAAS_VP.ValueConverter"
  7. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  8. xmlns:enums="clr-namespace:TeamAAS_VP.Enums"
  9. xmlns:lex="http://wpflocalizeextension.codeplex.com"
  10. xmlns:local="clr-namespace:TeamAAS_VP"
  11. xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
  12. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  13. xmlns:prism="http://prismlibrary.com/"
  14. xmlns:vm="clr-namespace:TeamAAS_VP.ViewModels"
  15. d:DataContext="{d:DesignInstance Type=vm:MainWindowViewModel}"
  16. d:Height="768"
  17. d:Width="1024"
  18. lex:LocalizeDictionary.DesignCulture="zh-CN"
  19. lex:ResxLocalizationProvider.DefaultAssembly="TeamAAS-VP"
  20. lex:ResxLocalizationProvider.DefaultDictionary="Lang"
  21. Closing="Window_Closing"
  22. FontFamily="{DynamicResource DefaultFont}"
  23. WindowStartupLocation="CenterScreen"
  24. WindowState="Maximized"
  25. mc:Ignorable="d">
  26. <Window.Title>
  27. <MultiBinding StringFormat=" {0} {1}">
  28. <Binding Path="CompanyTitle" />
  29. <Binding Path="AppVersion" />
  30. </MultiBinding>
  31. </Window.Title>
  32. <Window.Resources>
  33. <converter:NavigationStateConverter x:Key="_NavigationState" />
  34. <converter:NavigationStateConverter1 x:Key="_NavigationState1" />
  35. <!-- 普通状态背景 -->
  36. <SolidColorBrush x:Key="ModeNormalBrush" Color="White" />
  37. <!-- 生产模式背景 -->
  38. <SolidColorBrush x:Key="ModeAutoBrush" Color="Green" />
  39. <!-- 调机模式背景 -->
  40. <SolidColorBrush x:Key="ModeManualBrush" Color="Orange" />
  41. <!-- 流线模式背景 -->
  42. <SolidColorBrush x:Key="ModeClearBrush" Color="Yellow" />
  43. <!-- 生产卡片样式 -->
  44. <Style x:Key="AutoModeCardStyle" TargetType="materialDesign:Card">
  45. <Setter Property="Background" Value="{StaticResource ModeNormalBrush}" />
  46. <Setter Property="Margin" Value="6,0" />
  47. <Setter Property="MinWidth" Value="64" />
  48. <Setter Property="HorizontalAlignment" Value="Center" />
  49. <Setter Property="VerticalAlignment" Value="Center" />
  50. <Style.Triggers>
  51. <DataTrigger Binding="{Binding management.CurrentDisplayMode}" Value="{x:Static enums:RunDisplayMode.Auto}">
  52. <Setter Property="Background" Value="{StaticResource ModeAutoBrush}" />
  53. </DataTrigger>
  54. </Style.Triggers>
  55. </Style>
  56. <!-- 调机卡片样式 -->
  57. <Style x:Key="ManualModeCardStyle" TargetType="materialDesign:Card">
  58. <Setter Property="Background" Value="{StaticResource ModeNormalBrush}" />
  59. <Setter Property="Margin" Value="6,0" />
  60. <Setter Property="MinWidth" Value="64" />
  61. <Setter Property="HorizontalAlignment" Value="Center" />
  62. <Setter Property="VerticalAlignment" Value="Center" />
  63. <Style.Triggers>
  64. <DataTrigger Binding="{Binding management.CurrentDisplayMode}" Value="{x:Static enums:RunDisplayMode.Manual}">
  65. <Setter Property="Background" Value="{StaticResource ModeManualBrush}" />
  66. </DataTrigger>
  67. </Style.Triggers>
  68. </Style>
  69. <!-- 流线卡片样式 -->
  70. <Style x:Key="ClearModeCardStyle" TargetType="materialDesign:Card">
  71. <Setter Property="Background" Value="{StaticResource ModeNormalBrush}" />
  72. <Setter Property="Margin" Value="6,0" />
  73. <Setter Property="MinWidth" Value="64" />
  74. <Setter Property="HorizontalAlignment" Value="Center" />
  75. <Setter Property="VerticalAlignment" Value="Center" />
  76. <Style.Triggers>
  77. <DataTrigger Binding="{Binding management.CurrentDisplayMode}" Value="{x:Static enums:RunDisplayMode.Clear}">
  78. <Setter Property="Background" Value="{StaticResource ModeClearBrush}" />
  79. </DataTrigger>
  80. </Style.Triggers>
  81. </Style>
  82. </Window.Resources>
  83. <b:Interaction.Triggers>
  84. <b:EventTrigger EventName="Loaded">
  85. <b:InvokeCommandAction Command="{Binding LoadedCommand}" />
  86. </b:EventTrigger>
  87. <b:EventTrigger EventName="Closed">
  88. <b:InvokeCommandAction Command="{Binding ClosedCommand}" />
  89. </b:EventTrigger>
  90. </b:Interaction.Triggers>
  91. <materialDesign:DialogHost DialogTheme="Inherit" Identifier="RootDialog">
  92. <Grid>
  93. <Grid.RowDefinitions>
  94. <RowDefinition Height="100" />
  95. <RowDefinition Height="*" />
  96. <RowDefinition Height="auto" />
  97. </Grid.RowDefinitions>
  98. <Grid>
  99. <Grid.ColumnDefinitions>
  100. <ColumnDefinition Width="100" />
  101. <ColumnDefinition Width="100" />
  102. <ColumnDefinition Width="100" />
  103. <ColumnDefinition Width="100" />
  104. <ColumnDefinition Width="*" />
  105. <ColumnDefinition Width="100" />
  106. <ColumnDefinition Width="100" />
  107. <ColumnDefinition Width="100" />
  108. </Grid.ColumnDefinitions>
  109. <Grid.Resources />
  110. <Button
  111. Grid.Row="1"
  112. Grid.Column="0"
  113. Width="90"
  114. Height="90"
  115. Background="{Binding NavigationIndex, Converter={StaticResource _NavigationState}, ConverterParameter=0}"
  116. Command="{Binding NavigationCommand}"
  117. CommandParameter="Home"
  118. Style="{StaticResource MaterialDesignIconButton}"
  119. ToolTip="{lex:Loc 运行窗口}">
  120. <StackPanel
  121. HorizontalAlignment="Center"
  122. VerticalAlignment="Center"
  123. Orientation="Vertical">
  124. <materialDesign:PackIcon
  125. Width="50"
  126. Height="50"
  127. Foreground="{Binding NavigationIndex, Converter={StaticResource _NavigationState1}, ConverterParameter=0}"
  128. Kind="HomeOutline" />
  129. <TextBlock
  130. Margin="0,0,0,5"
  131. HorizontalAlignment="Center"
  132. VerticalAlignment="Center"
  133. FontSize="12"
  134. Foreground="Black"
  135. Text="{lex:Loc 运行窗口}" />
  136. </StackPanel>
  137. </Button>
  138. <Button
  139. Grid.Row="1"
  140. Grid.Column="1"
  141. Width="90"
  142. Height="90"
  143. Background="{Binding NavigationIndex, Converter={StaticResource _NavigationState}, ConverterParameter=1}"
  144. Command="{Binding NavigationCommand}"
  145. CommandParameter="Products"
  146. Style="{StaticResource MaterialDesignIconButton}"
  147. ToolTip="{lex:Loc 产品管理}">
  148. <StackPanel
  149. HorizontalAlignment="Center"
  150. VerticalAlignment="Center"
  151. Orientation="Vertical">
  152. <materialDesign:PackIcon
  153. Width="50"
  154. Height="50"
  155. Foreground="{Binding NavigationIndex, Converter={StaticResource _NavigationState1}, ConverterParameter=1}"
  156. Kind="FileTableBoxOutline" />
  157. <TextBlock
  158. Margin="0,0,0,5"
  159. HorizontalAlignment="Center"
  160. VerticalAlignment="Center"
  161. FontSize="12"
  162. Foreground="Black"
  163. Text="{lex:Loc 产品管理}" />
  164. </StackPanel>
  165. </Button>
  166. <Button
  167. Grid.Row="1"
  168. Grid.Column="2"
  169. Width="90"
  170. Height="90"
  171. Background="{Binding NavigationIndex, Converter={StaticResource _NavigationState}, ConverterParameter=2}"
  172. Command="{Binding NavigationCommand}"
  173. CommandParameter="Debug"
  174. Style="{StaticResource MaterialDesignIconButton}"
  175. ToolTip="{lex:Loc 调试}">
  176. <StackPanel
  177. HorizontalAlignment="Center"
  178. VerticalAlignment="Center"
  179. Orientation="Vertical">
  180. <materialDesign:PackIcon
  181. Width="50"
  182. Height="50"
  183. Foreground="{Binding NavigationIndex, Converter={StaticResource _NavigationState1}, ConverterParameter=2}"
  184. Kind="WrenchOutline" />
  185. <TextBlock
  186. Margin="0,0,0,5"
  187. HorizontalAlignment="Center"
  188. VerticalAlignment="Center"
  189. FontSize="12"
  190. Foreground="Black"
  191. Text="{lex:Loc 调试}" />
  192. </StackPanel>
  193. </Button>
  194. <Button
  195. Grid.Row="1"
  196. Grid.Column="3"
  197. Width="90"
  198. Height="90"
  199. Background="{Binding NavigationIndex, Converter={StaticResource _NavigationState}, ConverterParameter=3}"
  200. Command="{Binding NavigationCommand}"
  201. CommandParameter="Setting"
  202. Style="{StaticResource MaterialDesignIconButton}"
  203. ToolTip="{lex:Loc 设置}">
  204. <StackPanel
  205. HorizontalAlignment="Center"
  206. VerticalAlignment="Center"
  207. Orientation="Vertical">
  208. <materialDesign:PackIcon
  209. Width="50"
  210. Height="50"
  211. Foreground="{Binding NavigationIndex, Converter={StaticResource _NavigationState1}, ConverterParameter=3}"
  212. Kind="Cog" />
  213. <TextBlock
  214. Margin="0,0,0,5"
  215. HorizontalAlignment="Center"
  216. VerticalAlignment="Center"
  217. FontSize="12"
  218. Foreground="Black"
  219. Text="{lex:Loc 设置}" />
  220. </StackPanel>
  221. </Button>
  222. <materialDesign:Card
  223. Grid.Row="1"
  224. Grid.Column="4"
  225. Margin="10"
  226. Background="White"
  227. UniformCornerRadius="15">
  228. <Grid Margin="12,8">
  229. <Grid.ColumnDefinitions>
  230. <ColumnDefinition Width="150" />
  231. <ColumnDefinition Width="*" />
  232. <ColumnDefinition Width="Auto" />
  233. </Grid.ColumnDefinitions>
  234. <Border
  235. Grid.Column="0"
  236. MinWidth="100"
  237. Padding="10,6"
  238. VerticalAlignment="Center"
  239. BorderBrush="#D6DDE8"
  240. BorderThickness="1"
  241. CornerRadius="8">
  242. <StackPanel Orientation="Vertical">
  243. <TextBlock
  244. Margin="0,0,0,4"
  245. FontSize="{DynamicResource Font.Size.Body3}"
  246. FontWeight="SemiBold"
  247. Text="{lex:Loc SettingView_Language_Text}" />
  248. <ComboBox
  249. MinWidth="160"
  250. FontSize="12"
  251. SelectedValue="{Binding CurrentLanguage, Mode=TwoWay}"
  252. SelectedValuePath="Tag">
  253. <ComboBoxItem Content="{lex:Loc SettingView_Language_ChineseSimplified}" Tag="{x:Static enums:Language.ChineseSimplified}" />
  254. <ComboBoxItem Content="{lex:Loc SettingView_Language_ChineseTraditional}" Tag="{x:Static enums:Language.ChineseTraditional}" />
  255. <ComboBoxItem Content="{lex:Loc SettingView_Language_English}" Tag="{x:Static enums:Language.English}" />
  256. <ComboBoxItem Content="{lex:Loc SettingView_Language_Japanese}" Tag="{x:Static enums:Language.Japanese}" />
  257. <ComboBoxItem Content="{lex:Loc SettingView_Language_Vietnamese}" Tag="{x:Static enums:Language.Vietnamese}" />
  258. </ComboBox>
  259. </StackPanel>
  260. </Border>
  261. <TextBlock
  262. Grid.Column="1"
  263. HorizontalAlignment="Center"
  264. VerticalAlignment="Center"
  265. FontSize="{DynamicResource Font.Size.Title1}"
  266. FontWeight="Bold"
  267. Text="{Binding MyTitle}"
  268. TextAlignment="Center" />
  269. <StackPanel
  270. Grid.Column="2"
  271. HorizontalAlignment="Right"
  272. Orientation="Horizontal">
  273. <materialDesign:Card Margin="40,0" Style="{StaticResource AutoModeCardStyle}">
  274. <TextBlock
  275. Margin="8"
  276. FontSize="22"
  277. Text="{lex:Loc 生产}" />
  278. </materialDesign:Card>
  279. <materialDesign:Card Margin="40,0" Style="{StaticResource ManualModeCardStyle}">
  280. <TextBlock
  281. Margin="8"
  282. FontSize="22"
  283. Text="{lex:Loc 调试}" />
  284. </materialDesign:Card>
  285. <materialDesign:Card Margin="40,0" Style="{StaticResource ClearModeCardStyle}">
  286. <TextBlock
  287. Margin="8"
  288. FontSize="22"
  289. Text="{lex:Loc 流线}" />
  290. </materialDesign:Card>
  291. </StackPanel>
  292. </Grid>
  293. </materialDesign:Card>
  294. <Button
  295. Grid.Row="1"
  296. Grid.Column="5"
  297. Width="90"
  298. Height="90"
  299. Background="{Binding NavigationIndex, Converter={StaticResource _NavigationState}, ConverterParameter=5}"
  300. Command="{Binding NavigationCommand}"
  301. CommandParameter="Calib"
  302. Style="{StaticResource MaterialDesignIconButton}"
  303. ToolTip="{lex:Loc 校准}">
  304. <StackPanel
  305. HorizontalAlignment="Center"
  306. VerticalAlignment="Center"
  307. Orientation="Vertical">
  308. <materialDesign:PackIcon
  309. Width="50"
  310. Height="50"
  311. Foreground="{Binding NavigationIndex, Converter={StaticResource _NavigationState1}, ConverterParameter=5}"
  312. Kind="CrosshairsGps" />
  313. <TextBlock
  314. Margin="0,0,0,5"
  315. HorizontalAlignment="Center"
  316. VerticalAlignment="Center"
  317. FontSize="12"
  318. Foreground="Black"
  319. Text="{lex:Loc 校准}" />
  320. </StackPanel>
  321. </Button>
  322. <Button
  323. Grid.Row="1"
  324. Grid.Column="6"
  325. Width="90"
  326. Height="90"
  327. Background="{Binding NavigationIndex, Converter={StaticResource _NavigationState}, ConverterParameter=6}"
  328. Command="{Binding NavigationCommand}"
  329. CommandParameter="Statistics"
  330. Cursor="Hand"
  331. Style="{StaticResource MaterialDesignIconButton}"
  332. ToolTip="{lex:Loc 统计}">
  333. <StackPanel
  334. HorizontalAlignment="Center"
  335. VerticalAlignment="Center"
  336. Orientation="Vertical">
  337. <materialDesign:PackIcon
  338. Width="50"
  339. Height="50"
  340. Foreground="{Binding NavigationIndex, Converter={StaticResource _NavigationState1}, ConverterParameter=6}"
  341. Kind="ChartBellCurveCumulative" />
  342. <TextBlock
  343. Margin="0,0,0,5"
  344. HorizontalAlignment="Center"
  345. VerticalAlignment="Center"
  346. FontSize="12"
  347. Foreground="Black"
  348. Text="{lex:Loc 统计}" />
  349. </StackPanel>
  350. </Button>
  351. <Button
  352. Grid.Row="1"
  353. Grid.Column="7"
  354. Width="90"
  355. Height="90"
  356. Background="{Binding NavigationIndex, Converter={StaticResource _NavigationState}, ConverterParameter=7}"
  357. Command="{Binding NavigationCommand}"
  358. CommandParameter="User"
  359. Style="{StaticResource MaterialDesignIconButton}"
  360. ToolTip="{lex:Loc 用户}">
  361. <StackPanel
  362. HorizontalAlignment="Center"
  363. VerticalAlignment="Center"
  364. Orientation="Vertical">
  365. <materialDesign:PackIcon
  366. Width="50"
  367. Height="50"
  368. Foreground="{Binding NavigationIndex, Converter={StaticResource _NavigationState1}, ConverterParameter=7}"
  369. Kind="AccountMultipleOutline" />
  370. <TextBlock
  371. Margin="0,0,0,5"
  372. HorizontalAlignment="Center"
  373. VerticalAlignment="Center"
  374. FontSize="12"
  375. Foreground="Black"
  376. Text="{lex:Loc 用户}" />
  377. </StackPanel>
  378. </Button>
  379. </Grid>
  380. <ContentControl Grid.Row="1" prism:RegionManager.RegionName="MainRegionContext" />
  381. <!-- 状态栏 -->
  382. <StatusBar x:Name="status" Grid.Row="2">
  383. <ItemsControl
  384. HorizontalAlignment="Left"
  385. VerticalAlignment="Center"
  386. ItemsSource="{Binding Status}">
  387. <ItemsControl.ItemsPanel>
  388. <ItemsPanelTemplate>
  389. <VirtualizingStackPanel Orientation="Horizontal" />
  390. </ItemsPanelTemplate>
  391. </ItemsControl.ItemsPanel>
  392. <ItemsControl.ItemTemplate>
  393. <DataTemplate>
  394. <TextBlock
  395. MinWidth="40"
  396. Margin="4,0"
  397. VerticalAlignment="Center"
  398. Background="{Binding Background, Mode=TwoWay}"
  399. FontSize="{DynamicResource Font.Size. Font.Size.Captions4}"
  400. Foreground="Black"
  401. Opacity="0.7"
  402. Text="{Binding Message, Mode=TwoWay}" />
  403. </DataTemplate>
  404. </ItemsControl.ItemTemplate>
  405. </ItemsControl>
  406. </StatusBar>
  407. <materialDesign:Snackbar
  408. x:Name="SnackbarSeven"
  409. Grid.Row="1"
  410. VerticalAlignment="Bottom"
  411. HorizontalContentAlignment="Center"
  412. FontSize="{DynamicResource Font.Size.Body1}"
  413. MessageQueue="{materialDesign:MessageQueue}"
  414. Opacity="0.8" />
  415. </Grid>
  416. </materialDesign:DialogHost>
  417. </Window>