<UserControl x:Class="FLY.Weight.UI.Client.UiModule.FlowGraph" 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:conv="clr-namespace:FLY.Weight.UI.Client.Converter" xmlns:local="clr-namespace:FLY.Weight.UI.Client.UiModule" xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="800" > <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Themes/Dictionary_MyStyle.xaml"/> <ResourceDictionary Source="pack://application:,,,/FLY.Weight.UI.Client;component/Themes/UcWeighterItemStyle.xaml"/> </ResourceDictionary.MergedDictionaries> <conv:OpacityConverter x:Key="OpacityConverter"></conv:OpacityConverter> <SolidColorBrush x:Key="TextBrush" Color="#4C4949" /> <SolidColorBrush x:Key="GrayBrush1" Color="#FF727272"/> <SolidColorBrush x:Key="GrayBrush2" Color="#FF858484" /> <SolidColorBrush x:Key="SemiTransparentGreyBrush" Color="#99F0F0F0"/> <SolidColorBrush x:Key="SemiTransparentActiveBrush" Color="#50008BE5"/> <SolidColorBrush x:Key="WhiteBrush" Color="White"/> <Style x:Key="TitleStyle" TargetType="TextBlock"> <Setter Property="Width" Value="50"/> <Setter Property="Foreground" Value="{StaticResource GrayBrush1}"/> <Setter Property="FontSize" Value="16"/> <Setter Property="TextAlignment" Value="Right"/> </Style> <Style x:Key="ValueStyle" TargetType="TextBlock"> <Setter Property="Foreground" Value="{StaticResource TextBrush}"/> <Setter Property="FontSize" Value="20"/> <Setter Property="Padding" Value="5,0"/> </Style> <Style x:Key="ValueStyle2" TargetType="TextBlock"> <Setter Property="Foreground" Value="{StaticResource WhiteBrush}"/> <Setter Property="Background" Value="{StaticResource TextBrush}"/> <Setter Property="FontSize" Value="26"/> <Setter Property="Padding" Value="5,0"/> </Style> <Style x:Key="UnitStyle" TargetType="TextBlock"> <Setter Property="Foreground" Value="{StaticResource GrayBrush2}"/> <Setter Property="FontSize" Value="15"/> <Setter Property="VerticalAlignment" Value="Bottom"/> </Style> <local:FlowGraphVmUt x:Key="viewModel"/> </ResourceDictionary> </UserControl.Resources> <Border Style="{StaticResource BorderStyle_module}"> <Grid d:DataContext="{StaticResource viewModel}"> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="400*"/> <ColumnDefinition Width="auto"/> </Grid.ColumnDefinitions> <!--DisableAnimations="True" 这个非常重要,把速度提升了很多倍!!!--> <lvc:CartesianChart Grid.Row="1" Grid.ColumnSpan="4" Margin="5,-5,2,2" Hoverable="False" DisableAnimations="True" DataTooltip="{x:Null}" > <lvc:CartesianChart.Series> <lvc:LineSeries Values="{Binding Values}" LineSmoothness="1" StrokeThickness="3" Configuration="{Binding Mapper}" Stroke="{Binding Stroke}" Fill="Transparent" PointGeometrySize="0"/> </lvc:CartesianChart.Series> <lvc:CartesianChart.Resources> </lvc:CartesianChart.Resources> <lvc:CartesianChart.AxisX> <lvc:Axis LabelFormatter="{Binding XFormatter}" Foreground="Black" ShowLabels="True" MinValue="0" MaxValue="{Binding XMax}" > <lvc:Axis.Separator> <lvc:Separator Stroke="{StaticResource Brushes.ChartSeparator}" Step ="20"/> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis LabelFormatter="{Binding YFormatter}" Foreground="Black" MinValue="{Binding YMin}" MaxValue="{Binding YMax}" FontFamily="Courier New" > <lvc:Axis.Separator> <lvc:Separator Stroke="{StaticResource Brushes.ChartSeparator}" StrokeThickness="1" StrokeDashArray="8" /> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisY> </lvc:CartesianChart> <Button Style="{StaticResource ButtonStyle_icon}" Margin="48,0,0,-20" Click="btnInfoClick" > <Grid Style="{StaticResource GridStyle_ButtonShadow}" > <TextBlock Padding="10,5" VerticalAlignment="Top" FontSize="24" Foreground="White" Background="{StaticResource Color_theme_activity}" Text="称重流量" /> </Grid> </Button> <Grid Grid.Column="2" Grid.RowSpan="2" Panel.ZIndex="2" VerticalAlignment="Top" HorizontalAlignment="Left" > <Viewbox MaxHeight="50"> <StackPanel> <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="5"> <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> <StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal" Margin="5,0"> <TextBlock Style="{StaticResource TitleStyle}" Text="ID:" /> <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Id}"/> </StackPanel> </StackPanel> </StackPanel> </Viewbox> </Grid> <Button Grid.Column="1" Grid.RowSpan="2" Panel.ZIndex="1" VerticalAlignment="Top" HorizontalAlignment="Right" Click="btnTableClick" Style="{StaticResource ButtonStyle_icon}" > <StackPanel> <iconPacks:PackIconMaterial Kind="Grid"/> <TextBlock Text="数据表" /> </StackPanel> </Button> <Viewbox Grid.Column="3" Grid.RowSpan="2" Panel.ZIndex="1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="{StaticResource ControlMargin}" MaxHeight="260" MaxWidth="150"> <StackPanel > <StackPanel.Resources> <Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Empty}"> <Setter Property="Margin" Value="2"/> <Setter Property="Height" Value="35"/> <Setter Property="Width" Value="40"/> <Setter Property="HorizontalAlignment" Value="Left"/> </Style> </StackPanel.Resources> <StackPanel Orientation="Horizontal"> <Button Click="btnSelectAllClick" > <Grid > <Border Background="{StaticResource Color_theme_static}" > <TextBlock Text="All" FontSize="25" Foreground="White" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center" /> </Border> </Grid> </Button> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding TotalFlow,StringFormat={}{0:F1}}" FontSize="25" Foreground="Black" VerticalAlignment="Bottom" /> <TextBlock Text="kg/h" FontSize="15" Foreground="Black" VerticalAlignment="Bottom"/> </StackPanel> </StackPanel> <ItemsControl ItemsSource="{Binding Items}" Panel.ZIndex="2"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Button Click="btnSelectClick" Tag="{Binding .}" > <Border x:Name="mainBorder" MinWidth="40" Height="35" Background="{Binding Fill}" BorderThickness="1" BorderBrush="White"> <TextBlock x:Name="tb" Text="{Binding Title}" FontSize="40" Foreground="White" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center" /> </Border> </Button> <StackPanel Orientation="Horizontal" x:Name="sp_value" > <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Value,StringFormat={}{0:F1}}" FontSize="25" Foreground="Black" VerticalAlignment="Bottom" /> <TextBlock Text="kg/h" FontSize="15" Foreground="Black" VerticalAlignment="Bottom"/> </StackPanel> </StackPanel> </StackPanel> <DataTemplate.Triggers> <DataTrigger Binding="{Binding Visibility}" Value="Hidden"> <Setter TargetName="mainBorder" Property="Background" Value="White"/> <Setter TargetName="tb" Property="Foreground" Value="{Binding Fill}"/> <Setter TargetName="mainBorder" Property="BorderBrush" Value="{StaticResource Color_theme_static}"/> <Setter TargetName="sp_value" Property="Visibility" Value="Hidden"/> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </StackPanel> </Viewbox> </Grid> </Border> </UserControl>