123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- <UserControl
- x:Class="ShakerApp.Views.AnalogSignalPreviewView"
- xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:local="using:ShakerApp"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:oxy="http://oxyplot.org/avalonia"
- xmlns:suki="https://github.com/kikipoulet/SukiUI"
- xmlns:vm="using:ShakerApp.ViewModels"
- d:DesignHeight="450"
- d:DesignWidth="800"
- x:DataType="vm:AnalogSignalPreviewViewModel"
- mc:Ignorable="d">
- <Grid>
- <oxy:PlotView
- Background="Transparent"
- Controller="{Binding PlotController}"
- Model="{Binding PlotModel}">
- <oxy:PlotView.DefaultTrackerTemplate>
- <ControlTemplate>
- <oxy:TrackerControl
- Background="#6F999999"
- BorderBrush="Transparent"
- CornerRadius="6"
- HorizontalLineVisibility="False"
- LineExtents="{Binding PlotModel.PlotArea}"
- LineStroke="Gray"
- Position="{Binding Position}"
- ShowPointer="True"
- VerticalLineVisibility="True">
- <oxy:TrackerControl.Content>
- <StackPanel Margin="10">
- <TextBlock Text="{DynamicResource Value}" />
- <TextBlock>
- <Run Text="{Binding XAxis.Title}" />
- <Run Text=":" />
- <Run Text="{Binding TrackerDatas[0].DataPoint.X, StringFormat='{}{0:F2}'}" />
- <Run Text="{Binding XAxis.Unit}" />
- </TextBlock>
- <ItemsControl ItemsSource="{Binding TrackerDatas}">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <TextBlock IsVisible="{Binding Series.IsVisible}">
- <Run Text="{Binding Series.Title}" />
- <Run Text=":" />
- <Run Text="{Binding DataPoint.Y, StringFormat='{}{0:F4}'}" />
- <Run Text="{Binding $parent[ItemsControl].DataContext.YAxis.Unit}" />
- </TextBlock>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </StackPanel>
- </oxy:TrackerControl.Content>
- </oxy:TrackerControl>
- </ControlTemplate>
- </oxy:PlotView.DefaultTrackerTemplate>
- </oxy:PlotView>
- <Button
- Margin="0,0,16,56"
- HorizontalAlignment="Right"
- VerticalAlignment="Bottom"
- Classes="Basic"
- Cursor="Hand">
- <Interaction.Behaviors>
- <EventTriggerBehavior EventName="Click">
- <InvokeCommandAction Command="{Binding Source={x:Static vm:PlotConfigViewModel.Instance}, Path=PlotConfigCommand}" CommandParameter="{Binding PlotModel}" />
- </EventTriggerBehavior>
- </Interaction.Behaviors>
- <PathIcon Background="Transparent" Data="{StaticResource SettingGeometry}">
- <PathIcon.Styles>
- <Style Selector="PathIcon:pointerover">
- <Setter Property="Foreground" Value="Black" />
- </Style>
- <Style Selector="PathIcon">
- <Setter Property="Foreground" Value="#AAAAAAAA" />
- </Style>
- </PathIcon.Styles>
- </PathIcon>
- </Button>
- <StackPanel
- HorizontalAlignment="Right"
- VerticalAlignment="Top"
- Orientation="Horizontal">
- <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
- <TextBlock VerticalAlignment="Center" Text="{DynamicResource Statistics}" />
- <ToggleSwitch IsChecked="{Binding StatisticsVisibily, Mode=TwoWay}" />
- </StackPanel>
- <StackPanel
- Margin="10,0,0,0"
- IsVisible="{Binding THDVisibily}"
- Orientation="Horizontal">
- <TextBlock VerticalAlignment="Center" Text="THD" />
- <ToggleSwitch IsChecked="{Binding THDEnabled, Mode=TwoWay}" />
- </StackPanel>
- <Button
- HorizontalAlignment="Right"
- VerticalAlignment="Top"
- Classes="Basic"
- IsVisible="{Binding CanChangedAnalog}">
- <PathIcon Data="{StaticResource SettingGeometry}" />
- <Button.Flyout>
- <Flyout ShowMode="Standard">
- <suki:GlassCard
- Background="Black"
- CornerRadius="10"
- Opacity="1"
- OpacityMask="Black">
- <suki:GroupBox>
- <suki:GroupBox.Header>
- <TextBlock Foreground="White" Text="{DynamicResource SelectSignalType}" />
- </suki:GroupBox.Header>
- <ItemsControl ItemsSource="{Binding Menu}">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Grid
- Name="item"
- Height="{StaticResource ItemHeight}"
- x:DataType="vm:TimeDomainMenuViewModel"
- Background="Transparent"
- Cursor="Hand">
- <Interaction.Behaviors>
- <EventTriggerBehavior EventName="PointerReleased">
- <ChangePropertyAction
- PropertyName="SelectedAnalog"
- TargetObject="{Binding $parent[Button].DataContext}"
- Value="{Binding #item.DataContext.AnalogType}" />
- </EventTriggerBehavior>
- </Interaction.Behaviors>
- <Grid.Styles>
- <Style Selector="Grid:pointerover">
- <Setter Property="Background" Value="LightGray" />
- </Style>
- </Grid.Styles>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="30" />
- <ColumnDefinition Width="*" />
- </Grid.ColumnDefinitions>
- <PathIcon
- Data="{x:Static suki:Icons.Check}"
- Foreground="White"
- IsVisible="{Binding IsChecked}" />
- <Line
- HorizontalAlignment="Right"
- VerticalAlignment="Center"
- Stroke="LightGray"
- StrokeThickness="2"
- StartPoint="0,4"
- EndPoint="0,24" />
- <TextBlock
- Grid.Column="1"
- Margin="10,0,0,0"
- HorizontalAlignment="Left"
- VerticalAlignment="Center"
- Foreground="White"
- Text="{local:ResourceBinding Key}" />
- </Grid>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </suki:GroupBox>
- </suki:GlassCard>
- </Flyout>
- </Button.Flyout>
- </Button>
- </StackPanel>
- <StackPanel
- Margin="80,60"
- HorizontalAlignment="Left"
- VerticalAlignment="Top"
- IsHitTestVisible="False"
- Orientation="Horizontal">
- <Border
- HorizontalAlignment="Left"
- VerticalAlignment="Top"
- Background="#1FAAAAAA"
- CornerRadius="6"
- IsHitTestVisible="False"
- IsVisible="{Binding StatisticsVisibily}">
- <StackPanel Margin="10">
- <Grid Height="20" ColumnDefinitions="80,80,80,80,80">
- <TextBlock
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{DynamicResource ChannelName}" />
- <TextBlock
- Grid.Column="1"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{DynamicResource Max}" />
- <TextBlock
- Grid.Column="2"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{DynamicResource Min}" />
- <TextBlock
- Grid.Column="3"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{DynamicResource Rms}" />
- <TextBlock
- Grid.Column="4"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{DynamicResource Avg}" />
- </Grid>
- <ItemsControl ItemsSource="{Binding Statistics}">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Grid Height="20" ColumnDefinitions="80,80,80,80,80">
- <TextBlock
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{local:ResourceBinding Name}" />
- <TextBlock
- Grid.Column="1"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{Binding Max, StringFormat='{}{0:F3}'}" />
- <TextBlock
- Grid.Column="2"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{Binding Min, StringFormat='{}{0:F3}'}" />
- <TextBlock
- Grid.Column="3"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{Binding RMS, StringFormat='{}{0:F3}'}" />
- <TextBlock
- Grid.Column="4"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{Binding Average, StringFormat='{}{0:F3}'}" />
- </Grid>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </StackPanel>
- </Border>
- <Border
- Margin="10,0,0,0"
- HorizontalAlignment="Left"
- VerticalAlignment="Top"
- Background="#1FAAAAAA"
- CornerRadius="6"
- IsHitTestVisible="False">
- <Border.IsVisible>
- <MultiBinding Converter="{StaticResource MutliBoolConverter}">
- <Binding Path="THDVisibily" />
- <Binding Path="THDEnabled" />
- </MultiBinding>
- </Border.IsVisible>
- <StackPanel Margin="10">
- <StackPanel Orientation="Horizontal">
- <TextBlock Text="{local:ResourceBinding THDTitle}" />
- <TextBlock Text="THD" />
- </StackPanel>
- <TextBlock
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Text="{Binding THD, StringFormat={}{0:P2}}" />
- </StackPanel>
- </Border>
- </StackPanel>
- </Grid>
- </UserControl>
|