PumpControlView.axaml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <UserControl
  2. x:Class="ShakerApp.Views.PumpControlView"
  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="using:ShakerApp"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. xmlns:suki="https://github.com/kikipoulet/SukiUI"
  9. xmlns:vm="using:ShakerApp.ViewModels"
  10. Height="80"
  11. Margin="4"
  12. d:DesignHeight="450"
  13. d:DesignWidth="800"
  14. x:DataType="vm:CircuitViewModel"
  15. mc:Ignorable="d">
  16. <Grid Height="60">
  17. <Grid.ColumnDefinitions>
  18. <ColumnDefinition Width="{Binding $parent[Grid].Height}" />
  19. <ColumnDefinition Width="3*" />
  20. <ColumnDefinition Width="*" />
  21. <ColumnDefinition Width="*" />
  22. </Grid.ColumnDefinitions>
  23. <PathIcon
  24. Width="{Binding $parent[Grid].Height}"
  25. Height="{Binding $parent[Grid].Height}"
  26. Classes.IsRunning="{Binding IsStart}"
  27. Data="{StaticResource PumpOuterGeometry}">
  28. <PathIcon.Styles>
  29. <Style Selector="PathIcon">
  30. <Setter Property="Foreground" Value="Gray" />
  31. </Style>
  32. <Style Selector="PathIcon.IsRunning">
  33. <Setter Property="Foreground" Value="Green" />
  34. </Style>
  35. </PathIcon.Styles>
  36. </PathIcon>
  37. <PathIcon
  38. Width="30"
  39. Height="30"
  40. Margin="0,8,0,0"
  41. VerticalAlignment="Top"
  42. Classes.IsRunning="{Binding IsStart}"
  43. Data="{StaticResource PumpInGeometry}">
  44. <PathIcon.Styles>
  45. <Style Selector="PathIcon">
  46. <Setter Property="Foreground" Value="Gray" />
  47. </Style>
  48. <Style Selector="PathIcon.IsRunning">
  49. <Setter Property="Foreground" Value="Green" />
  50. <Style.Animations>
  51. <Animation IterationCount="INFINITE" Duration="0:0:2">
  52. <KeyFrame Cue="0%">
  53. <Setter Property="RotateTransform.Angle" Value="0" />
  54. </KeyFrame>
  55. <KeyFrame Cue="100%">
  56. <Setter Property="RotateTransform.Angle" Value="360" />
  57. </KeyFrame>
  58. </Animation>
  59. </Style.Animations>
  60. </Style>
  61. </PathIcon.Styles>
  62. </PathIcon>
  63. <Grid Grid.Column="1" Classes.EnablePressure="{Binding !EnablePressure}">
  64. <Grid.Styles>
  65. <Style Selector="Grid.EnablePressure">
  66. <Setter Property="IsEnabled" Value="False" />
  67. </Style>
  68. </Grid.Styles>
  69. <Grid.ColumnDefinitions>
  70. <ColumnDefinition Width="*" />
  71. <ColumnDefinition Width="*" />
  72. <ColumnDefinition Width="*" />
  73. </Grid.ColumnDefinitions>
  74. <StackPanel Grid.Column="0">
  75. <TextBlock Text="{DynamicResource Pressure}" />
  76. <NumericUpDown
  77. IsEnabled="{Binding IsLoadPressure}"
  78. Minimum="0"
  79. Value="{Binding Pressure}" />
  80. </StackPanel>
  81. <Button
  82. Grid.Column="1"
  83. Width="120"
  84. Height="42"
  85. Command="{Binding LoadPressureCommand}">
  86. <Button.IsEnabled>
  87. <MultiBinding Converter="{StaticResource MutliBoolConverter}">
  88. <MultiBinding.Bindings>
  89. <Binding Path="!IsLoadPressure" />
  90. <Binding Path="IsStart" />
  91. </MultiBinding.Bindings>
  92. </MultiBinding>
  93. </Button.IsEnabled>
  94. <StackPanel Orientation="Horizontal">
  95. <PathIcon Data="{StaticResource LoadGeometry}" RenderTransform="rotate(180deg)" />
  96. <TextBlock
  97. Margin="4,0,0,0"
  98. VerticalAlignment="Center"
  99. Text="{DynamicResource LoadPressure}" />
  100. </StackPanel>
  101. </Button>
  102. <Button
  103. Grid.Column="2"
  104. Width="120"
  105. Height="42"
  106. Command="{Binding UnloadPressureCommand}">
  107. <Button.IsEnabled>
  108. <MultiBinding Converter="{StaticResource MutliBoolConverter}">
  109. <MultiBinding.Bindings>
  110. <Binding Path="IsLoadPressure" />
  111. <Binding Path="IsStart" />
  112. </MultiBinding.Bindings>
  113. </MultiBinding>
  114. </Button.IsEnabled>
  115. <StackPanel Orientation="Horizontal">
  116. <PathIcon Data="{StaticResource LoadGeometry}" />
  117. <TextBlock
  118. Margin="4,0,0,0"
  119. VerticalAlignment="Center"
  120. Text="{DynamicResource UnloadPressure}" />
  121. </StackPanel>
  122. </Button>
  123. </Grid>
  124. <Button
  125. Grid.Column="2"
  126. Width="120"
  127. Height="42"
  128. Command="{Binding StartCommand}"
  129. IsEnabled="{Binding !IsStart}">
  130. <StackPanel Orientation="Horizontal">
  131. <PathIcon Data="{StaticResource StartGeometry}" />
  132. <TextBlock VerticalAlignment="Center" Text="{DynamicResource Start}" />
  133. </StackPanel>
  134. </Button>
  135. <Button
  136. Grid.Column="3"
  137. Width="120"
  138. Height="42"
  139. Command="{Binding StopCommand}">
  140. <Button.IsEnabled>
  141. <MultiBinding Converter="{StaticResource MutliBoolConverter}">
  142. <MultiBinding.Bindings>
  143. <Binding Path="!IsLoadPressure" />
  144. <Binding Path="IsStart" />
  145. </MultiBinding.Bindings>
  146. </MultiBinding>
  147. </Button.IsEnabled>
  148. <StackPanel Orientation="Horizontal">
  149. <PathIcon Data="{StaticResource StopGeometry}" />
  150. <TextBlock
  151. Margin="4,0,0,0"
  152. VerticalAlignment="Center"
  153. Text="{DynamicResource Stop}" />
  154. </StackPanel>
  155. </Button>
  156. </Grid>
  157. </UserControl>