AnalogSignalPreviewView.axaml 9.0 KB

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