<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>