<UserControl x:Class="FLY.Thick.Blowing.UI.UiModule.TrendGraph2" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:FLY.Thick.Blowing.UI.UiModule" xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks" xmlns:lvc1="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Feng.Wpf" mc:Ignorable="d" d:DesignHeight="600" d:DesignWidth="800" > <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Converter/Dictionary_MyConv.xaml"/> <ResourceDictionary Source="pack://application:,,,/FLY.Thick.Blowing.UI;component/Themes/Styles.xaml"/> <ResourceDictionary Source="pack://application:,,,/FLY.Thick.Blowing.UI;component/Themes/Colors.xaml"/> </ResourceDictionary.MergedDictionaries> <local:TrendGraphVmUt x:Key="trendVm"/> <local:ScanGraphVmUt x:Key="scanGraphVm"/> </ResourceDictionary> </UserControl.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="170*"/> <RowDefinition Height="100*"/> </Grid.RowDefinitions> <Border Style="{StaticResource Styles.Module.Border}" > <Grid x:Name="grid_trend" d:DataContext="{StaticResource trendVm}"> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition Height="100*"/> <RowDefinition Height="70*"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="400*"/> <ColumnDefinition Width="280*"/> </Grid.ColumnDefinitions> <lvc:CartesianChart Grid.Row="1" Grid.ColumnSpan="3" Hoverable="False" DisableAnimations="True" DataTooltip="{x:Null}" Margin="5,-5,2,2" MouseDown="UIElement_MouseDown"> <lvc:CartesianChart.Resources> <Style TargetType="lvc1:Column2Series"> <Setter Property="PointGeometry" Value="{x:Null}"/> <Setter Property="StrokeThickness" Value="0" /> </Style> </lvc:CartesianChart.Resources> <lvc:CartesianChart.Series> <lvc1:Column2Series Values="{Binding Values}" Configuration="{Binding MapperPositive}"/> <lvc1:Column2Series Values="{Binding Values}" Configuration="{Binding MapperNegative}"/> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> <lvc:Axis Foreground="Black" LabelFormatter="{Binding XFormatter}" MinValue="0" MaxValue="{Binding XMax}" > <lvc:Axis.Separator> <lvc:Separator Stroke="{StaticResource Brushes.ChartSeparator}" Step ="10"/> </lvc:Axis.Separator> <lvc:Axis.Sections> <lvc:AxisSection Style="{StaticResource Styles.Axis.Section.Selected}" DataLabel="True" Value="{Binding SelectedIndex}" /> </lvc:Axis.Sections> </lvc:Axis> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis LabelFormatter="{Binding YFormatter}" Foreground="Transparent" MinValue="{Binding YMin}" MaxValue="{Binding YMax}" FontFamily="Courier New" > <lvc:Axis.Sections> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding YMax}" Stroke="{StaticResource Brushes.ChartAxisLabel3}"/> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding YMin}" Stroke="{StaticResource Brushes.ChartAxisLabel3}"/> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding Tolerance2YMax}" Stroke="{StaticResource Brushes.ChartAxisLabel2}"/> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding Tolerance2YMin}" Stroke="{StaticResource Brushes.ChartAxisLabel2}"/> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding ToleranceYMax}" Stroke="{StaticResource Brushes.ChartAxisLabel1}"/> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding ToleranceYMin}" Stroke="{StaticResource Brushes.ChartAxisLabel1}"/> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="0" Stroke="{StaticResource Brushes.ChartAxisLabel0}" /> </lvc:Axis.Sections> <lvc:Axis.Separator> <lvc:Separator Stroke="Transparent" /> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisY> </lvc:CartesianChart> <lvc:CartesianChart Grid.Row="2" Grid.ColumnSpan="3" Hoverable="False" DisableAnimations="True" DataTooltip="{x:Null}" Margin="5,-5,2,2" MouseDown="UIElement_MouseDown"> <lvc:CartesianChart.Resources> <Style TargetType="lvc:LineSeries"> <Setter Property="StrokeThickness" Value="3" /> <Setter Property="Fill" Value="{StaticResource Brushes.ChartArea4}"/> <Setter Property="Stroke" Value="{StaticResource Brushes.ChartArea0}"/> </Style> </lvc:CartesianChart.Resources> <lvc:CartesianChart.Series> <lvc:LineSeries Values="{Binding Values}" Configuration="{Binding MapperValue}"/> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> <lvc:Axis Foreground="{StaticResource Brushes.ChartAxisLabel}" LabelFormatter="{Binding XFormatter}" MinValue="0" MaxValue="{Binding XMax}" > <lvc:Axis.Separator> <lvc:Separator Stroke="{StaticResource Brushes.ChartSeparator}" Step ="10"/> </lvc:Axis.Separator> <lvc:Axis.Sections> <lvc:AxisSection Style="{StaticResource Styles.Axis.Section.Selected}" Value="{Binding SelectedIndex}" /> </lvc:Axis.Sections> </lvc:Axis> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis LabelFormatter="{Binding YFormatter2}" Foreground="{StaticResource Brushes.ChartAxisLabel}" MinRange="1" FontFamily="Courier New" > <lvc:Axis.Separator> <lvc:Separator Stroke="{StaticResource Brushes.ChartSeparator}" /> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisY> </lvc:CartesianChart> <Button Style="{StaticResource Styles.Button.Icon}" Margin="48,0,0,-20" Click="btnTrendInfoClick" > <Grid Style="{StaticResource Styles.Shadow}" > <TextBlock Padding="10,5" VerticalAlignment="Top" FontSize="24" Foreground="White" Background="{StaticResource Brushes.Activity}" Text="趋势图" /> </Grid> </Button> <StackPanel Grid.Column="1" Grid.RowSpan="2" Panel.ZIndex="2" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="{StaticResource ControlMargin}"> <Viewbox MaxHeight="{StaticResource FontSize.Value}" HorizontalAlignment="Left" Margin="2"> <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" > <TextBlock Style="{StaticResource ValueStyle}" > <Run Text="{Binding BeginTime,Mode=OneWay,StringFormat={}{0:MM-dd HH:mm}}"/> 至 <Run Text="{Binding EndTime,Mode=OneWay,StringFormat={}{0:MM-dd HH:mm}}"/> </TextBlock> </StackPanel> </Viewbox> <Viewbox MaxHeight="{StaticResource FontSize.Value}" HorizontalAlignment="Left" Margin="2"> <StackPanel Orientation="Horizontal" Margin="{StaticResource Margin.Text}" Background="{StaticResource SemiTransparentGreyBrush2}"> <TextBlock Style="{StaticResource TitleStyle}" Text="ID:" /> <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Id}"/> </StackPanel> </Viewbox> </StackPanel> <Grid Grid.Column="2" Grid.RowSpan="2" Panel.ZIndex="1" Margin="10,0" VerticalAlignment="Top" HorizontalAlignment="Right" Background="{StaticResource SemiTransparentGreyBrush}" > <Viewbox MaxHeight="50"> <StackPanel Margin="5"> <StackPanel.Resources> <Style TargetType="Viewbox"> <Setter Property="Height" Value="25"/> <Setter Property="Width" Value="120"/> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Top"/> </Style> </StackPanel.Resources> <StackPanel Orientation="Horizontal"> <Viewbox > <StackPanel Orientation="Horizontal"> <TextBlock Style="{StaticResource TitleStyle}" Foreground="{StaticResource WhiteBrush}" Background="{StaticResource TextBrush}" Opacity="0.8" Text="平均: " /> <TextBlock Style="{StaticResource ValueStyle}" Foreground="{StaticResource WhiteBrush}" Background="{StaticResource TextBrush}" Text="{Binding Average,Mode=OneWay,StringFormat={}{0:P1}}" > </TextBlock> </StackPanel> </Viewbox> </StackPanel> <StackPanel Orientation="Horizontal"> <Viewbox > <StackPanel Orientation="Horizontal"> <TextBlock Style="{StaticResource TitleStyle}" Text="最大: "/> <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Max,Mode=OneWay,StringFormat={}{0:P1}}"/> </StackPanel> </Viewbox> <Viewbox > <StackPanel Orientation="Horizontal" > <TextBlock Style="{StaticResource TitleStyle}" Text="最小: " /> <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Min,Mode=OneWay,StringFormat={}{0:P1}}"/> </StackPanel> </Viewbox> </StackPanel> </StackPanel> </Viewbox> </Grid> </Grid> </Border> <Border Grid.Row="1" Style="{StaticResource Styles.Module.Border}" > <Grid x:Name="grid_scan" d:DataContext="{StaticResource scanGraphVm}"> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="400*"/> <ColumnDefinition Width="280*"/> </Grid.ColumnDefinitions> <lvc:CartesianChart Grid.Row="1" Grid.ColumnSpan="3" Series="{Binding Series}" Hoverable="False" DisableAnimations="True" DataTooltip="{x:Null}" Margin="5,-5,2,2"> <lvc:CartesianChart.AxisX> <lvc:Axis LabelFormatter="{Binding XFormatter}" Foreground="{StaticResource Brushes.ChartAxisLabel}" MaxValue="{Binding XMax}" MinValue="0" > <lvc:Axis.Separator> <lvc:Separator Stroke="{StaticResource Brushes.ChartSeparator}" Step ="{Binding XStep}"/> </lvc:Axis.Separator> <lvc:Axis.Sections> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" StrokeThickness="0" Stroke="{StaticResource Brushes.Activity}" Value="{Binding OrgBoltNo}" /> </lvc:Axis.Sections> </lvc:Axis> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis LabelFormatter="{Binding YFormatter}" MaxValue="{Binding YMax}" MinValue="{Binding YMin}" Panel.ZIndex="0" Foreground="Transparent" FontFamily="Courier New"> <lvc:Axis.Sections> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding YMax}" Stroke="{StaticResource Brushes.ChartAxisLabel3}" /> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding YMin}" Stroke="{StaticResource Brushes.ChartAxisLabel3}" /> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding Tolerance2YMax}" Stroke="{StaticResource Brushes.ChartAxisLabel2}" /> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding Tolerance2YMin}" Stroke="{StaticResource Brushes.ChartAxisLabel2}" /> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding ToleranceYMax}" Stroke="{StaticResource Brushes.ChartAxisLabel1}" /> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding ToleranceYMin}" Stroke="{StaticResource Brushes.ChartAxisLabel1}" /> <lvc:AxisSection Style="{StaticResource AxisSectionStyle}" Value="{Binding Target}" Stroke="{StaticResource Brushes.ChartAxisLabel0}" /> </lvc:Axis.Sections> <lvc:Axis.Separator> <lvc:Separator Stroke="Transparent" /> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisY> </lvc:CartesianChart> <Button Style="{StaticResource Styles.Button.Icon}" Margin="48,0,0,-20" Click="btnScanInfoClick" > <Grid Style="{StaticResource Styles.Shadow}" > <TextBlock Padding="10,5" VerticalAlignment="Top" FontSize="24" Foreground="{StaticResource Brushes.ThemeBackground}" Background="{StaticResource Brushes.Activity}" Text="扫描图" /> </Grid> </Button> <StackPanel Grid.Column="1" Grid.RowSpan="2" Panel.ZIndex="2" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="{StaticResource ControlMargin}"> <Viewbox MaxHeight="{StaticResource FontSize.Value}" HorizontalAlignment="Left" Margin="2"> <StackPanel Orientation="Horizontal" > <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Time,StringFormat={}{0:MM-dd HH:mm:ss}}"/> <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"> <TextBlock Style="{StaticResource TitleStyle}" Text="ID:" /> <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Id}"/> </StackPanel> </StackPanel> </Viewbox> <Viewbox MaxHeight="{StaticResource FontSize.Value}" HorizontalAlignment="Left" Margin="2"> <StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"> <TextBlock > <TextBlock.Style> <Style TargetType="TextBlock" BasedOn="{StaticResource ValueStyle}"> <Setter Property="Background" Value="#99000000"/> <Setter Property="Foreground" Value="White"/> <Setter Property="Text" Value="逆"/> <Style.Triggers> <DataTrigger Binding="{Binding IsBackw}" Value="True"> <Setter Property="Background" Value="#99008BE5"/> <Setter Property="Text" Value="顺"/> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock> </StackPanel> <StackPanel Orientation="Horizontal" Background="#99FFFFFF"> <StackPanel Orientation="Horizontal" Margin="5,0"> <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding RPeriod, Converter={StaticResource timespanconv}}" /> <TextBlock Style="{StaticResource TitleStyle}" Width="auto" VerticalAlignment="Bottom" Text="min/R" /> </StackPanel> </StackPanel> </StackPanel> </Viewbox> </StackPanel> <Grid Grid.Column="2" Grid.RowSpan="2" Panel.ZIndex="1" Margin="10,0" VerticalAlignment="Top" HorizontalAlignment="Right" Background="{StaticResource SemiTransparentGreyBrush}" > <Viewbox MaxHeight="50"> <StackPanel Margin="5"> <StackPanel.Resources> <Style TargetType="Viewbox"> <Setter Property="Height" Value="25"/> <Setter Property="Width" Value="120"/> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Top"/> </Style> </StackPanel.Resources> <StackPanel Orientation="Horizontal"> <Viewbox > <StackPanel Orientation="Horizontal"> <TextBlock Style="{StaticResource TitleStyle}" Foreground="{StaticResource WhiteBrush}" Background="{StaticResource TextBrush}" Opacity="0.8" Text="平均: " /> <TextBlock Style="{StaticResource ValueStyle}" Foreground="{StaticResource WhiteBrush}" Background="{StaticResource TextBrush}" Text="{Binding Average,StringFormat={}{0:F1}}" /> </StackPanel> </Viewbox> <Viewbox> <StackPanel Orientation="Horizontal" Background="#99000000"> <TextBlock Style="{StaticResource TitleStyle}" Foreground="White" Text=" 2σ: " /> <TextBlock Style="{StaticResource ValueStyle}" Foreground="{StaticResource WhiteBrush}" Background="{StaticResource TextBrush}" Text="{Binding Sigma2Text}" /> </StackPanel> </Viewbox> </StackPanel> <StackPanel Orientation="Horizontal"> <Viewbox > <StackPanel Orientation="Horizontal"> <TextBlock Style="{StaticResource TitleStyle}" Text="最大: "/> <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding MaxText}"/> </StackPanel> </Viewbox> <Viewbox > <StackPanel Orientation="Horizontal" > <TextBlock Style="{StaticResource TitleStyle}" Text="最小: " /> <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding MinText}"/> </StackPanel> </Viewbox> </StackPanel> </StackPanel> </Viewbox> </Grid> </Grid> </Border> </Grid> </UserControl>