<Page x:Class="FLY.Thick.Blowing.UI.PgBlowingExt"
      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:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
      xmlns:local="clr-namespace:FLY.Thick.Blowing.UI"
      xmlns:sys="clr-namespace:System;assembly=mscorlib"
      mc:Ignorable="d" 
      d:DesignWidth="1280"
      
	Title="吹膜测厚.辅助设置" >
    <Page.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Themes/Dictionary_MyStyle.xaml"/>
                <ResourceDictionary Source="pack://application:,,,/FLY.Thick.Base.UI;component/Converter/Dictionary_MyConv.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <local:PgBlowingExtVmUt x:Key="viewModel" VelocityFilter="5" />

            <sys:Boolean x:Key="False">False</sys:Boolean>
            <SolidColorBrush x:Key="axisLabelColor" Color="DarkSlateBlue"/>
            <SolidColorBrush x:Key="axisSeparatorColor" Color="DarkSlateBlue" Opacity="0.5"/>

        </ResourceDictionary>
        
    </Page.Resources>
    <Grid  Background="{StaticResource Brushes.Card.Background}" d:DataContext="{StaticResource viewModel}">
        <Grid.RowDefinitions>
            <RowDefinition Height="auto" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <StackPanel Orientation="Horizontal" Background="{StaticResource Brushes.TitleBar.Background}" >
            <Button Style="{StaticResource Styles.TitleBar.BackButton2}" Command="BrowseBack"/>
            <TextBlock Style="{StaticResource Styles.TitleBar.Text}"  Text="吹膜测厚"/>
            <TextBlock Text="辅助设置" FontSize="30" VerticalAlignment="Center" Margin="{StaticResource ControlMargin}" Foreground="LightGray"/>
        </StackPanel>

        <ScrollViewer CanContentScroll="False" PanningMode="Both" Grid.Row="1"  >
            <StackPanel Margin="{StaticResource ControlMargin}">
                <Border Style="{StaticResource Styles.Card.Border}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition Width="auto"/>
                        </Grid.ColumnDefinitions>
                        <Grid >
                            <StackPanel Orientation="Horizontal" 
                                        Visibility="{Binding Cfl.IsCanDownload,Converter={StaticResource visbilityconv}}">
                                <StackPanel Margin="{StaticResource ControlMargin}" Orientation="Horizontal">
                                    <TextBlock Style="{StaticResource Styles.Text.FieldHeader}" Text="当前数据量:" />
                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="{Binding Cfl.BufTotalTime,StringFormat={}{0:hh\\:mm\\:ss}}" />
                                </StackPanel>
                                <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
                                    <Button Content="获取数据" Style="{StaticResource Styles.Button.Square.Accent2}" Command="{Binding DownloadCmd}"
                                        IsEnabled="{Binding Cfl.IsDownloading,Converter={StaticResource e2bconv}, ConverterParameter={StaticResource False}}"
                                        />
                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="{Binding Cfl.Msg}" />
                                </StackPanel>

                            </StackPanel>
                            <TextBlock Text="数据量不够,不能下载数据" Style="{StaticResource Styles.Text.FieldContent}" Foreground="Red" VerticalAlignment="Center"
                                       Visibility="{Binding Cfl.IsCanDownload,Converter={StaticResource visbilityconv},ConverterParameter=HiddenWhenTrue}"
                                       />
                        </Grid>

                        <StackPanel Grid.Column="1" Orientation="Horizontal">
                            <Button Content="保存" Style="{StaticResource Styles.Button.Square2}" Command="{Binding SaveCmd}"/>
                            <Button Content="加载" Style="{StaticResource Styles.Button.Square2}"  Command="{Binding LoadCmd}"/>
                        </StackPanel>
                    </Grid>
                </Border>
                <StackPanel >
                    <Border Style="{StaticResource Styles.Card.Border}" >
                        <StackPanel>
                            <TextBlock Style="{StaticResource Styles.Card.Title}" Text="厚度趋势"/>
                            <lvc:CartesianChart Height="150" DisableAnimations="True" Margin="{StaticResource ControlMargin}" Hoverable="False" DataTooltip="{x:Null}" >
                                    <lvc:CartesianChart.Series>
                                        <lvc:LineSeries Values="{Binding ThicknessValues}" 
                                                        Configuration="{Binding MapperTv}" />
                                    </lvc:CartesianChart.Series>
                                <lvc:CartesianChart.AxisX>
                                    <lvc:Axis x:Name="thickChart_xAxis" LabelFormatter="{Binding DateTimeFormatter}" 
                                              Foreground="DarkSlateBlue" />
                                </lvc:CartesianChart.AxisX>
                                <lvc:CartesianChart.AxisY>
                                    <lvc:Axis LabelFormatter="{Binding YFormatter}"
                                              Foreground="DarkSlateBlue"
                                              />
                                </lvc:CartesianChart.AxisY>
                            </lvc:CartesianChart>
                        </StackPanel>
                    </Border>
                    <Border Style="{StaticResource Styles.Card.Border}" 
                        Visibility="{Binding IsRPosMode,Converter={StaticResource visbilityconv}, ConverterParameter=Collapsed}">
                        <StackPanel >
                            <TextBlock Style="{StaticResource Styles.Card.Title}" Text="旋转角度"/>
                            <lvc:CartesianChart Height="150"  DisableAnimations="True" Margin="{StaticResource ControlMargin}" Hoverable="False" DataTooltip="{x:Null}" >
                                <lvc:CartesianChart.Series>
                                    <lvc:LineSeries Values="{Binding AngleValues}" PointGeometry="{x:Null}" Configuration="{Binding MapperTv}" />
                                </lvc:CartesianChart.Series>
                                <lvc:CartesianChart.AxisX>
                                    <lvc:Axis x:Name="angleChart_xAxis" LabelFormatter="{Binding DateTimeFormatter}" 
                                              Foreground="DarkSlateBlue"/>
                                </lvc:CartesianChart.AxisX>
                                <lvc:CartesianChart.AxisY>
                                    <lvc:Axis LabelFormatter="{Binding YFormatter}"
                                              Foreground="DarkSlateBlue"
                                              />
                                </lvc:CartesianChart.AxisY>
                            </lvc:CartesianChart>

                        </StackPanel>
                    </Border>
                    <Border Style="{StaticResource Styles.Card.Border}" >
                        <StackPanel>
                            <TextBlock Style="{StaticResource Styles.Card.Title}"  Text="线速度趋势"/>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition/>
                                    <ColumnDefinition Width="auto"/>
                                </Grid.ColumnDefinitions>
                                <StackPanel Orientation="Horizontal">
                                    <StackPanel Margin="5,0">
                                        <TextBlock Style="{StaticResource Styles.Text.FieldHeader.Editable}" VerticalAlignment="Bottom" Text="滤波" />
                                        <StackPanel Orientation="Horizontal">
                                            <TextBox Style="{StaticResource Styles.Text.FieldContent.Input.Card}" Text="{Binding VelocityFilter}" VerticalAlignment="Bottom" />
                                            <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="s" />
                                        </StackPanel>
                                    </StackPanel>
                                        <Button Content="更新" Style="{StaticResource Styles.Button.Square2}" Command="{Binding UpdateVCmd}"
                                            IsEnabled="{Binding Cfl.IsDataReady}"
                                            />
                                </StackPanel>
                                    <StackPanel Grid.Column="1">
                                        <StackPanel Orientation="Horizontal"  >
                                            <StackPanel Orientation="Horizontal" Margin="{StaticResource ControlMargin}">
                                                <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="最大值:" />
                                                <StackPanel Orientation="Horizontal">
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent}"  Text="{Binding VMax,StringFormat={}{0:F1}}"/>
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="m/min" />
                                                </StackPanel>
                                            </StackPanel>
                                            <StackPanel Orientation="Horizontal" Margin="{StaticResource ControlMargin}">
                                                <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="最小值:" />
                                                <StackPanel Orientation="Horizontal">
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent}" Text="{Binding VMin,StringFormat={}{0:F1}}"/>
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="m/min" />
                                                </StackPanel>
                                            </StackPanel>
                                            <StackPanel Orientation="Horizontal" Margin="{StaticResource ControlMargin}">
                                                <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="平均值:" />
                                                <StackPanel Orientation="Horizontal">
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent}" Text="{Binding VAvg,StringFormat={}{0:F1}}"/>
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="m/min" />
                                                </StackPanel>
                                            </StackPanel>
                                        </StackPanel>
                                    </StackPanel>
                            
                            </Grid>

                            <lvc:CartesianChart Height="150"  DisableAnimations="True" Margin="{StaticResource ControlMargin}" Hoverable="False" DataTooltip="{x:Null}" >
                                    <lvc:CartesianChart.Series>
                                    <lvc:LineSeries Values="{Binding VelocityValues}" PointGeometry="{x:Null}" Configuration="{Binding MapperTv}" />
                                </lvc:CartesianChart.Series>
                                <lvc:CartesianChart.AxisX>
                                    <lvc:Axis x:Name="filmVelocityChart_xAxis" LabelFormatter="{Binding DateTimeFormatter}" 
                                              Foreground="DarkSlateBlue"
                                              />
                                </lvc:CartesianChart.AxisX>
                                <lvc:CartesianChart.AxisY>
                                    <lvc:Axis LabelFormatter="{Binding YFormatter}"
                                              Foreground="DarkSlateBlue"
                                              />
                                </lvc:CartesianChart.AxisY>
                            </lvc:CartesianChart>

                        </StackPanel>

                    </Border>
                    <Border Style="{StaticResource Styles.Card.Border}" 
                            Visibility="{Binding Is3D,Converter={StaticResource visbilityconv}, ConverterParameter=Collapsed}" >
                        <StackPanel>
                            <TextBlock Style="{StaticResource Styles.Card.Title}"  Text="立体式膜距离增量趋势"/>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition/>
                                        <ColumnDefinition Width="auto"/>
                                    </Grid.ColumnDefinitions>
                                    <StackPanel Orientation="Horizontal">

                                        <StackPanel Margin="{StaticResource ControlMargin}">
                                            <TextBlock Style="{StaticResource Styles.Text.FieldHeader.Editable}" Text="牵引1速度" />
                                            <StackPanel Orientation="Horizontal">
                                                <TextBox Style="{StaticResource Styles.Text.FieldContent.Input.Card}" Text="{Binding Velocity1,StringFormat={}{0:F1}}" />
                                                <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="m/min" />
                                            </StackPanel>
                                        </StackPanel>
                                        <Button Content="更新" Style="{StaticResource Styles.Button.Square.Accent2}" Command="{Binding UpdateFilmLength3DCmd}" 
                                            IsEnabled="{Binding Cfl.IsDataReady}"
                                        />
                                    </StackPanel>
                                    <StackPanel  Grid.Column="1" >
                                        <StackPanel Orientation="Horizontal">
                                            <StackPanel Orientation="Horizontal" Margin="{StaticResource ControlMargin}">
                                                <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="最大值:" />
                                                <StackPanel Orientation="Horizontal">
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent}" Text="{Binding FMax,StringFormat={}{0:F1}}"/>
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="m" />
                                                </StackPanel>
                                            </StackPanel>
                                            <StackPanel Orientation="Horizontal" Margin="{StaticResource ControlMargin}">
                                                <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="最小值:" />
                                                <StackPanel Orientation="Horizontal">
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent}" Text="{Binding FMin,StringFormat={}{0:F1}}"/>
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="m" />
                                                </StackPanel>
                                            </StackPanel>
                                            <StackPanel Orientation="Horizontal" Margin="{StaticResource ControlMargin}">
                                                <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="平均值:" />
                                                <StackPanel Orientation="Horizontal">
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent}" Text="{Binding FAvg,StringFormat={}{0:F1}}"/>
                                                    <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="m" />
                                                </StackPanel>
                                            </StackPanel>
                                        </StackPanel>
                                    </StackPanel>

                                </Grid>
                        
                            <lvc:CartesianChart 
                                Height="150"
                                DisableAnimations="True" Margin="{StaticResource ControlMargin}" Hoverable="False" DataTooltip="{x:Null}" >
                                <lvc:CartesianChart.Series>

                                    <lvc:LineSeries Values="{Binding FilmLength3DValues}" PointGeometry="{x:Null}" Configuration="{Binding MapperTv}" />
                                </lvc:CartesianChart.Series>
                                <lvc:CartesianChart.AxisX>
                                    <lvc:Axis  x:Name="filmLength3DChart_xAxis" LabelFormatter="{Binding DateTimeFormatter}" 
                                              Foreground="DarkSlateBlue"
                                              />
                                </lvc:CartesianChart.AxisX>
                                <lvc:CartesianChart.AxisY>
                                    <lvc:Axis LabelFormatter="{Binding YFormatter}"
                                              Foreground="DarkSlateBlue"
                                              />
                                </lvc:CartesianChart.AxisY>
                            </lvc:CartesianChart>
                        </StackPanel>
                    </Border>
                    <Border Style="{StaticResource Styles.Card.Border}" 
                        Visibility="{Binding Is3D,Converter={StaticResource visbilityconv}, ConverterParameter=Collapsed}">
                        <StackPanel >
                            <TextBlock Style="{StaticResource Styles.Card.Title}" Text="参数膜距离增量"/>
                            <StackPanel Orientation="Horizontal">
                                <Button Content="应用新数据" Style="{StaticResource Styles.Button.Square.Accent2}" Command="{Binding ApplyFilmLength3DCmd}"
                                    
                                            IsEnabled="{Binding Cfl.IsDataReady}"/>
                            </StackPanel>
                            <lvc:CartesianChart 
                                Height="150"
                                                DisableAnimations="True" 
                                                Margin="{StaticResource ControlMargin}" 
                                                Hoverable="False" DataTooltip="{x:Null}" 
                                                LegendLocation="Right"
                                                >
                                    <lvc:CartesianChart.Series>
                                    <lvc:LineSeries Values="{Binding CurrFilmLength3D}" PointGeometry="{x:Null}" Title="当前数据"/>
                                    <lvc:LineSeries Values="{Binding NewFilmLength3D}" PointGeometry="{x:Null}" Title="新数据"/>
                                </lvc:CartesianChart.Series>
                                <lvc:CartesianChart.AxisX>
                                    <lvc:Axis Foreground="DarkSlateBlue" />
                                </lvc:CartesianChart.AxisX>
                                <lvc:CartesianChart.AxisY>
                                    <lvc:Axis LabelFormatter="{Binding YFormatter}"
                                              Foreground="DarkSlateBlue"
                                              />
                                </lvc:CartesianChart.AxisY>
                            </lvc:CartesianChart>
                        </StackPanel>
                    </Border>
                    <Border Style="{StaticResource Styles.Card.Border}" >
                        <StackPanel>
                            <TextBlock Style="{StaticResource Styles.Card.Title}" Text="膜泡厚度横截面"/>
                            <StackPanel Orientation="Horizontal">

                                <StackPanel Margin="{StaticResource ControlMargin}">
                                    <TextBlock Style="{StaticResource Styles.Text.FieldHeader.Editable}" Text="膜距离" />
                                    <StackPanel Orientation="Horizontal">
                                            <TextBox HorizontalAlignment="Left" MaxWidth="150" Style="{StaticResource Styles.Text.FieldContent.Input.Card}" Text="{Binding FilmLength,StringFormat={}{0:F1}}" />
                                        <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="m" />
                                    </StackPanel>
                                </StackPanel>
                                <Button Content="更新" Style="{StaticResource Styles.Button.Square2}" Command="{Binding UpdateFramesCmd}"
                                        IsEnabled="{Binding Cfl.IsDataReady}"
                                        />
                                <StackPanel Margin="{StaticResource ControlMargin}">
                                    <TextBlock Style="{StaticResource Styles.Text.FieldHeader.Editable}" Text="查找范围" />
                                    <StackPanel Orientation="Horizontal">
                                            <TextBox HorizontalAlignment="Left" MaxWidth="150" Style="{StaticResource Styles.Text.FieldContent.Input.Card}" Text="{Binding FLRange}" />
                                        <TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="m" />
                                    </StackPanel>
                                </StackPanel>
                                    <Button Content="自动计算" 
                                            Style="{StaticResource Styles.Button.Square.Accent2}" 
                                            Background="{StaticResource MahApps.Brushes.Highlight}" 
                                            Command="{Binding CalCmd}"
                                        IsEnabled="{Binding Cfl.IsCaling,Converter={StaticResource e2bconv},ConverterParameter={StaticResource False}}"
                                        />
                                    <Button Content="应用" Style="{StaticResource Styles.Button.Square.Accent2}" Command="{Binding ApplyFilmLengthCmd}"/>
                                    <StackPanel >
                                        <TextBlock Text="{Binding Cfl.Msg}" Style="{StaticResource Styles.Text.FieldContent.Unit}"/>
                                    </StackPanel>
                                </StackPanel>

                            <lvc:CartesianChart 
                                Height="200"
                                DisableAnimations="True" Margin="{StaticResource ControlMargin}" Hoverable="False" DataTooltip="{x:Null}" Series="{Binding FrameSeries}"
                                LegendLocation="Right"
                                >

                                <lvc:CartesianChart.AxisX>
                                    <lvc:Axis 
                                              Foreground="{StaticResource axisLabelColor}"
                                        LabelFormatter="{Binding BoltNoFormatter}"
                                              >
                                        <lvc:Axis.Separator>
                                            <lvc:Separator Step="5" Stroke="{StaticResource axisSeparatorColor}"/>
                                        </lvc:Axis.Separator>
                                    </lvc:Axis>
                                </lvc:CartesianChart.AxisX>
                                <lvc:CartesianChart.AxisY>
                                    <lvc:Axis LabelFormatter="{Binding YFormatter}"
                                              Foreground="{StaticResource axisLabelColor}"
                                             >
                                        <lvc:Axis.Separator>
                                            <lvc:Separator Stroke="{StaticResource axisSeparatorColor}"/>
                                        </lvc:Axis.Separator>
                                    </lvc:Axis>
                                
                                </lvc:CartesianChart.AxisY>
                            </lvc:CartesianChart>
                        </StackPanel>
                    </Border>
                </StackPanel>
            </StackPanel>
        </ScrollViewer>
    </Grid>
</Page>