AnalogSignalPreviewView.axaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <UserControl
  2. x:Class="Dynamicloadsimulationdevice.Views.AnalogSignalPreviewView"
  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:Dynamicloadsimulationdevice"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. xmlns:oxy="http://oxyplot.org/avalonia"
  9. xmlns:suki="https://github.com/kikipoulet/SukiUI"
  10. xmlns:vm="using:Dynamicloadsimulationdevice.ViewModels"
  11. xmlns:ivm="using:IViewModel"
  12. d:DesignHeight="450"
  13. d:DesignWidth="800"
  14. x:DataType="vm:AnalogSignalPreviewViewModel"
  15. mc:Ignorable="d">
  16. <Grid>
  17. <oxy:PlotView
  18. Background="Transparent"
  19. Controller="{Binding PlotController}"
  20. DefaultTrackerTemplate="{StaticResource DefaultTrackerTemplate}"
  21. Model="{Binding PlotModel}" />
  22. <Button
  23. Margin="0,0,16,56"
  24. HorizontalAlignment="Right"
  25. VerticalAlignment="Bottom"
  26. Classes="Basic"
  27. Cursor="Hand">
  28. <Interaction.Behaviors>
  29. <EventTriggerBehavior EventName="Click">
  30. <InvokeCommandAction Command="{Binding Source={x:Static vm:PlotConfigViewModel.Instance}, Path=PlotConfigCommand}" CommandParameter="{Binding PlotModel}" />
  31. </EventTriggerBehavior>
  32. </Interaction.Behaviors>
  33. <PathIcon Background="Transparent" Data="{StaticResource SettingGeometry}">
  34. <PathIcon.Styles>
  35. <Style Selector="PathIcon:pointerover">
  36. <Setter Property="Foreground" Value="Black" />
  37. </Style>
  38. <Style Selector="PathIcon">
  39. <Setter Property="Foreground" Value="#AAAAAAAA" />
  40. </Style>
  41. </PathIcon.Styles>
  42. </PathIcon>
  43. </Button>
  44. <StackPanel
  45. HorizontalAlignment="Right"
  46. VerticalAlignment="Top"
  47. Orientation="Horizontal">
  48. <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
  49. <TextBlock VerticalAlignment="Center" Text="{DynamicResource Statistics}" />
  50. <ToggleSwitch IsChecked="{Binding StatisticsVisibily, Mode=TwoWay}" />
  51. </StackPanel>
  52. <Button
  53. HorizontalAlignment="Right"
  54. VerticalAlignment="Top"
  55. Classes="Basic"
  56. IsVisible="{Binding CanChangedAnalog}">
  57. <PathIcon Data="{StaticResource SettingGeometry}" />
  58. <Button.Flyout>
  59. <Flyout ShowMode="Standard">
  60. <suki:GlassCard
  61. Background="Black"
  62. CornerRadius="10"
  63. Opacity="1"
  64. OpacityMask="Black">
  65. <suki:GroupBox>
  66. <suki:GroupBox.Header>
  67. <TextBlock Foreground="White" Text="{DynamicResource SelectSignalType}" />
  68. </suki:GroupBox.Header>
  69. <ItemsControl ItemsSource="{Binding Menu}">
  70. <ItemsControl.ItemTemplate>
  71. <DataTemplate>
  72. <Grid
  73. Name="item"
  74. Height="{StaticResource ItemHeight}"
  75. x:DataType="vm:TimeDomainMenuViewModel"
  76. Background="Transparent"
  77. Cursor="Hand">
  78. <Interaction.Behaviors>
  79. <EventTriggerBehavior EventName="PointerReleased">
  80. <ChangePropertyAction
  81. PropertyName="SelectedAnalog"
  82. TargetObject="{Binding $parent[Button].DataContext}"
  83. Value="{Binding #item.DataContext.AnalogType}" />
  84. </EventTriggerBehavior>
  85. </Interaction.Behaviors>
  86. <Grid.Styles>
  87. <Style Selector="Grid:pointerover">
  88. <Setter Property="Background" Value="LightGray" />
  89. </Style>
  90. </Grid.Styles>
  91. <Grid.ColumnDefinitions>
  92. <ColumnDefinition Width="30" />
  93. <ColumnDefinition Width="*" />
  94. </Grid.ColumnDefinitions>
  95. <PathIcon
  96. Data="{x:Static suki:Icons.Check}"
  97. Foreground="White"
  98. IsVisible="{Binding IsChecked}" />
  99. <Line
  100. HorizontalAlignment="Right"
  101. VerticalAlignment="Center"
  102. Stroke="LightGray"
  103. StrokeThickness="2"
  104. StartPoint="0,4"
  105. EndPoint="0,24" />
  106. <TextBlock
  107. Grid.Column="1"
  108. Margin="10,0,0,0"
  109. HorizontalAlignment="Left"
  110. VerticalAlignment="Center"
  111. Foreground="White"
  112. Text="{ivm:ResourceBinding Key}" />
  113. </Grid>
  114. </DataTemplate>
  115. </ItemsControl.ItemTemplate>
  116. </ItemsControl>
  117. </suki:GroupBox>
  118. </suki:GlassCard>
  119. </Flyout>
  120. </Button.Flyout>
  121. </Button>
  122. </StackPanel>
  123. <StackPanel
  124. Margin="80,60"
  125. HorizontalAlignment="Left"
  126. VerticalAlignment="Top"
  127. IsHitTestVisible="False"
  128. Orientation="Horizontal">
  129. <Border
  130. HorizontalAlignment="Left"
  131. VerticalAlignment="Top"
  132. Background="#1FAAAAAA"
  133. CornerRadius="6"
  134. IsHitTestVisible="False"
  135. IsVisible="{Binding StatisticsVisibily}">
  136. <StackPanel Margin="10">
  137. <Grid Height="20" ColumnDefinitions="80,80,80,80,80">
  138. <TextBlock
  139. HorizontalAlignment="Center"
  140. VerticalAlignment="Center"
  141. Text="{DynamicResource ChannelName}" />
  142. <TextBlock
  143. Grid.Column="1"
  144. HorizontalAlignment="Center"
  145. VerticalAlignment="Center"
  146. Text="{DynamicResource Max}" />
  147. <TextBlock
  148. Grid.Column="2"
  149. HorizontalAlignment="Center"
  150. VerticalAlignment="Center"
  151. Text="{DynamicResource Min}" />
  152. <TextBlock
  153. Grid.Column="3"
  154. HorizontalAlignment="Center"
  155. VerticalAlignment="Center"
  156. Text="{DynamicResource Rms}" />
  157. <TextBlock
  158. Grid.Column="4"
  159. HorizontalAlignment="Center"
  160. VerticalAlignment="Center"
  161. Text="{DynamicResource Avg}" />
  162. </Grid>
  163. <ItemsControl ItemsSource="{Binding Statistics}">
  164. <ItemsControl.ItemTemplate>
  165. <DataTemplate>
  166. <Grid Height="20" ColumnDefinitions="80,80,80,80,80">
  167. <TextBlock
  168. HorizontalAlignment="Center"
  169. VerticalAlignment="Center"
  170. Text="{ivm:ResourceBinding Name}" />
  171. <TextBlock
  172. Grid.Column="1"
  173. HorizontalAlignment="Center"
  174. VerticalAlignment="Center"
  175. Text="{Binding Max, StringFormat='{}{0:F3}'}" />
  176. <TextBlock
  177. Grid.Column="2"
  178. HorizontalAlignment="Center"
  179. VerticalAlignment="Center"
  180. Text="{Binding Min, StringFormat='{}{0:F3}'}" />
  181. <TextBlock
  182. Grid.Column="3"
  183. HorizontalAlignment="Center"
  184. VerticalAlignment="Center"
  185. Text="{Binding RMS, StringFormat='{}{0:F3}'}" />
  186. <TextBlock
  187. Grid.Column="4"
  188. HorizontalAlignment="Center"
  189. VerticalAlignment="Center"
  190. Text="{Binding Average, StringFormat='{}{0:F3}'}" />
  191. </Grid>
  192. </DataTemplate>
  193. </ItemsControl.ItemTemplate>
  194. </ItemsControl>
  195. </StackPanel>
  196. </Border>
  197. </StackPanel>
  198. </Grid>
  199. </UserControl>