ShakerConfigView.axaml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. <UserControl
  2. x:Class="ShakerApp.Views.ShakerConfigView"
  3. xmlns="https://github.com/avaloniaui"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:ShakerApp.Views"
  7. xmlns:main="using:ShakerApp"
  8. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  9. xmlns:suki="https://github.com/kikipoulet/SukiUI"
  10. xmlns:vm="clr-namespace:ShakerApp.ViewModels"
  11. d:DesignHeight="450"
  12. d:DesignWidth="800"
  13. x:DataType="vm:ShakerConfigViewModel"
  14. DataContext="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}}"
  15. FontSize="{StaticResource ItemFontSize}"
  16. mc:Ignorable="d">
  17. <TabControl>
  18. <TabItem
  19. Height="46"
  20. FontSize="24"
  21. Header="{DynamicResource Sensitivity}">
  22. <UniformGrid Rows="1">
  23. <UniformGrid Columns="1">
  24. <suki:GlassCard
  25. Width="320"
  26. Height="200"
  27. Margin="4"
  28. VerticalAlignment="Top">
  29. <suki:GroupBox>
  30. <suki:GroupBox.Header>
  31. <TextBlock
  32. VerticalAlignment="Center"
  33. FontSize="{StaticResource TabItemFontSize}"
  34. FontWeight="Bold"
  35. Text="{DynamicResource DisplacementSensor}" />
  36. </suki:GroupBox.Header>
  37. <StackPanel>
  38. <StackPanel
  39. HorizontalAlignment="Left"
  40. VerticalAlignment="Top"
  41. Orientation="Horizontal">
  42. <TextBlock VerticalAlignment="Center" Text="{DynamicResource Sensitivity}" />
  43. <NumericUpDown
  44. Width="120"
  45. Height="{StaticResource ItemHeight}"
  46. Margin="4,0,0,0"
  47. Increment="0.001"
  48. Minimum="0.001"
  49. Value="{Binding DisplacementSensitivity}" />
  50. <TextBlock
  51. Margin="4,0,0,0"
  52. VerticalAlignment="Center"
  53. Text="mV/mm" />
  54. </StackPanel>
  55. <StackPanel
  56. Margin="4,4,0,0"
  57. HorizontalAlignment="Left"
  58. VerticalAlignment="Center"
  59. Orientation="Horizontal">
  60. <TextBlock VerticalAlignment="Center" Text="{DynamicResource DisplacementBias}" />
  61. <NumericUpDown
  62. Width="120"
  63. Margin="4,0,0,0"
  64. Value="{Binding DisplacementBias}" />
  65. <TextBlock
  66. Margin="4,0,0,0"
  67. VerticalAlignment="Center"
  68. Text="V" />
  69. </StackPanel>
  70. </StackPanel>
  71. </suki:GroupBox>
  72. </suki:GlassCard>
  73. <suki:GlassCard
  74. Width="320"
  75. Height="200"
  76. Margin="4"
  77. VerticalAlignment="Top">
  78. <suki:GroupBox>
  79. <suki:GroupBox.Header>
  80. <TextBlock
  81. VerticalAlignment="Center"
  82. FontSize="{StaticResource TabItemFontSize}"
  83. FontWeight="Bold"
  84. Text="{DynamicResource OutInputSignal}" />
  85. </suki:GroupBox.Header>
  86. <StackPanel
  87. HorizontalAlignment="Center"
  88. VerticalAlignment="Top"
  89. Orientation="Horizontal">
  90. <TextBlock VerticalAlignment="Center" Text="{DynamicResource OutSignalGain}" />
  91. <NumericUpDown
  92. Width="120"
  93. Height="{StaticResource ItemHeight}"
  94. Margin="4,0,0,0"
  95. Increment="0.001"
  96. Minimum="0.001"
  97. Value="{Binding OutSignalGain}" />
  98. <TextBlock
  99. Margin="4,0,0,0"
  100. VerticalAlignment="Center"
  101. Text="mm/V" />
  102. </StackPanel>
  103. </suki:GroupBox>
  104. </suki:GlassCard>
  105. </UniformGrid>
  106. <suki:GlassCard
  107. Width="320"
  108. Height="400"
  109. Margin="4"
  110. VerticalAlignment="Top">
  111. <suki:GroupBox>
  112. <suki:GroupBox.Header>
  113. <TextBlock
  114. VerticalAlignment="Center"
  115. FontSize="{StaticResource TabItemFontSize}"
  116. FontWeight="Bold"
  117. Text="{DynamicResource AccelerationSensor}" />
  118. </suki:GroupBox.Header>
  119. <StackPanel>
  120. <Grid Height="{StaticResource ItemHeight}" Background="{StaticResource TableTitleBackColor}">
  121. <Grid.ColumnDefinitions>
  122. <ColumnDefinition Width="30" />
  123. <ColumnDefinition Width="*" />
  124. <ColumnDefinition Width="*" />
  125. </Grid.ColumnDefinitions>
  126. <TextBlock
  127. HorizontalAlignment="Center"
  128. VerticalAlignment="Center"
  129. Text="{DynamicResource ServoValveIndex}"
  130. TextWrapping="Wrap" />
  131. <TextBlock
  132. Grid.Column="1"
  133. HorizontalAlignment="Center"
  134. VerticalAlignment="Center">
  135. <Run Text="{DynamicResource Sensitivity}" />
  136. <Run Text="(mv/g)" />
  137. </TextBlock>
  138. <TextBlock
  139. Grid.Column="2"
  140. HorizontalAlignment="Center"
  141. VerticalAlignment="Center"
  142. Text="{DynamicResource AccelerationPolarity}" />
  143. </Grid>
  144. <ItemsControl
  145. VerticalAlignment="Top"
  146. Background="Transparent"
  147. ItemsSource="{Binding Accelerations}"
  148. TabIndex="0">
  149. <ItemsControl.ItemTemplate>
  150. <DataTemplate>
  151. <Grid Height="{StaticResource ItemHeight}" Margin="0,4,0,4">
  152. <Grid.ColumnDefinitions>
  153. <ColumnDefinition Width="30" />
  154. <ColumnDefinition Width="*" />
  155. <ColumnDefinition Width="*" />
  156. </Grid.ColumnDefinitions>
  157. <TextBlock
  158. HorizontalAlignment="Center"
  159. VerticalAlignment="Center"
  160. IsEnabled="False"
  161. Text="{Binding Index}" />
  162. <NumericUpDown
  163. Grid.Column="1"
  164. Width="120"
  165. HorizontalAlignment="Center"
  166. VerticalAlignment="Center"
  167. Increment="0.001"
  168. Minimum="0.001"
  169. Value="{Binding Value.Sensitivity}" />
  170. <ComboBox
  171. Grid.Column="2"
  172. ItemsSource="{Binding Value.Polarity, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
  173. SelectedValue="{Binding Path=Value.Polarity}"
  174. SelectedValueBinding="{Binding Value}">
  175. <ComboBox.ItemTemplate>
  176. <DataTemplate>
  177. <TextBlock Text="{main:ResourceBinding Key}" />
  178. </DataTemplate>
  179. </ComboBox.ItemTemplate>
  180. </ComboBox>
  181. </Grid>
  182. </DataTemplate>
  183. </ItemsControl.ItemTemplate>
  184. </ItemsControl>
  185. </StackPanel>
  186. </suki:GroupBox>
  187. </suki:GlassCard>
  188. </UniformGrid>
  189. </TabItem>
  190. <TabItem
  191. Height="46"
  192. FontSize="16"
  193. Header="{DynamicResource SecurityConfig}">
  194. <suki:GlassCard
  195. Width="860"
  196. Height="400"
  197. Margin="4"
  198. VerticalAlignment="Top">
  199. <suki:GroupBox>
  200. <suki:GroupBox.Header>
  201. <TextBlock
  202. VerticalAlignment="Center"
  203. FontSize="{StaticResource TabItemFontSize}"
  204. FontWeight="Bold"
  205. Text="{DynamicResource SecurityConfig}" />
  206. </suki:GroupBox.Header>
  207. <UniformGrid HorizontalAlignment="Center" Columns="3">
  208. <StackPanel Orientation="Horizontal">
  209. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxDisplacement}" />
  210. <NumericUpDown
  211. Width="120"
  212. Height="{StaticResource ItemHeight}"
  213. Margin="4,0,0,0"
  214. Increment="0.001"
  215. Minimum="0"
  216. Value="{Binding MaxDisplacement}" />
  217. <TextBlock
  218. Margin="4,0,0,0"
  219. VerticalAlignment="Center"
  220. Text="mm" />
  221. </StackPanel>
  222. <StackPanel Orientation="Horizontal">
  223. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxVelocity}" />
  224. <NumericUpDown
  225. Width="120"
  226. Height="{StaticResource ItemHeight}"
  227. Margin="4,0,0,0"
  228. Increment="0.001"
  229. Minimum="0"
  230. Value="{Binding MaxVelocity}" />
  231. <TextBlock
  232. Margin="4,0,0,0"
  233. VerticalAlignment="Center"
  234. Text="m/s" />
  235. </StackPanel>
  236. <StackPanel Orientation="Horizontal">
  237. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxAcceleration}" />
  238. <NumericUpDown
  239. Width="120"
  240. Height="{StaticResource ItemHeight}"
  241. Margin="4,0,0,0"
  242. Increment="0.001"
  243. Minimum="0"
  244. Value="{Binding MaxAcceleration}" />
  245. <TextBlock
  246. Margin="4,0,0,0"
  247. VerticalAlignment="Center"
  248. Text="g" />
  249. </StackPanel>
  250. <StackPanel Orientation="Horizontal">
  251. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxOutInput}" />
  252. <NumericUpDown
  253. Width="120"
  254. Height="{StaticResource ItemHeight}"
  255. Margin="4,0,0,0"
  256. Increment="0.001"
  257. Minimum="0"
  258. Value="{Binding MaxOutInput}" />
  259. <TextBlock
  260. Margin="4,0,0,0"
  261. VerticalAlignment="Center"
  262. Text="V" />
  263. </StackPanel>
  264. <StackPanel Orientation="Horizontal">
  265. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxDriver}" />
  266. <NumericUpDown
  267. Width="120"
  268. Height="{StaticResource ItemHeight}"
  269. Margin="4,0,0,0"
  270. Increment="0.001"
  271. Minimum="0"
  272. Value="{Binding MaxDriver}" />
  273. <TextBlock
  274. Margin="4,0,0,0"
  275. VerticalAlignment="Center"
  276. Text="V" />
  277. </StackPanel>
  278. <StackPanel Orientation="Horizontal">
  279. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxJitterDisplacement}" />
  280. <NumericUpDown
  281. Width="120"
  282. Height="{StaticResource ItemHeight}"
  283. Margin="4,0,0,0"
  284. Increment="0.001"
  285. Minimum="0"
  286. Value="{Binding MaxJitterDisplacement}" />
  287. <TextBlock
  288. Margin="4,0,0,0"
  289. VerticalAlignment="Center"
  290. Text="mm" />
  291. </StackPanel>
  292. <StackPanel Orientation="Horizontal">
  293. <TextBlock VerticalAlignment="Center" Text="{DynamicResource MaxJitterAcceleration}" />
  294. <NumericUpDown
  295. Width="120"
  296. Height="{StaticResource ItemHeight}"
  297. Margin="4,0,0,0"
  298. Increment="0.001"
  299. Minimum="0"
  300. Value="{Binding MaxJitterAcceleration}" />
  301. <TextBlock
  302. Margin="4,0,0,0"
  303. VerticalAlignment="Center"
  304. Text="g" />
  305. </StackPanel>
  306. </UniformGrid>
  307. </suki:GroupBox>
  308. </suki:GlassCard>
  309. </TabItem>
  310. </TabControl>
  311. </UserControl>