Commit 2c9d6c0f authored by 潘栩锋's avatar 潘栩锋 🚴

修复定点图样式

parent f503cd7b
......@@ -80,7 +80,7 @@
<Version>10.1.1</Version>
</PackageReference>
<PackageReference Include="NLog">
<Version>5.1.0</Version>
<Version>4.6.8</Version>
</PackageReference>
<PackageReference Include="PropertyChanged.Fody">
<Version>4.1.0</Version>
......
......@@ -11,8 +11,7 @@
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Converter/Dictionary_MyConv.xaml"/>
<ResourceDictionary Source="pack://application:,,,/FLY.Thick.Base.UI;component/Themes/Styles.xaml"/>
<ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Converter/Converters.xaml"/>
<ResourceDictionary Source="pack://application:,,,/FLY.Thick.Base.UI;component/Themes/GraphStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
<local:FixGraphVmUt x:Key="viewModel" Max="65540" Min="655" Average="123" Sigma3="3.2"/>
......@@ -36,23 +35,23 @@
<lvc:LineSeries
Values="{Binding Values}"
StrokeThickness = "3"
Stroke = "{StaticResource Brushes.Activity}"
Stroke = "{StaticResource Brushes.Accent}"
Fill = "Transparent"
PointGeometry ="{x:Null}"/>
</lvc:CartesianChart.Series>
<lvc:CartesianChart.AxisX>
<lvc:Axis LabelFormatter="{Binding XFormatter}" FontSize="16" Foreground="Black"
<lvc:Axis LabelFormatter="{Binding XFormatter}" Foreground="{StaticResource Brushes.Text.Black}"
MaxValue="{Binding XMax}" MinValue="{Binding XMin}">
<lvc:Axis.Separator>
<lvc:Separator Stroke="LightGray"/>
<lvc:Separator Stroke="{StaticResource Brushes.Text.Gray}" StrokeDashArray="3" />
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
<lvc:CartesianChart.AxisY>
<lvc:Axis LabelFormatter="{Binding YFormatter}" MaxValue="{Binding YMax}" MinValue="{Binding YMin}" Panel.ZIndex="0" Foreground="Black">
<lvc:Axis LabelFormatter="{Binding YFormatter}" Foreground="{StaticResource Brushes.Text.Black}"
MaxValue="{Binding YMax}" MinValue="{Binding YMin}" >
<lvc:Axis.Separator>
<lvc:Separator StrokeThickness="1" Stroke="LightGray" />
<lvc:Separator Stroke="{StaticResource Brushes.Text.Gray}" StrokeDashArray="3" />
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisY >
......@@ -68,43 +67,51 @@
</TextBlock>
</Grid>
</Button>
<Grid Grid.Column="1" Grid.RowSpan="2" Panel.ZIndex="2" >
<Grid Grid.Column="1" Grid.RowSpan="2" Panel.ZIndex="2" VerticalAlignment="Top" >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Left" Margin="{StaticResource ControlMargin}">
<Viewbox MaxHeight="{StaticResource FontSize.Value}" HorizontalAlignment="Left" Margin="2">
<StackPanel Orientation="Horizontal" >
<TextBlock Style="{StaticResource TitleStyle}" Text="AD值" Foreground="{StaticResource Brushes.Highlight}" Visibility="{Binding IsADMode,Converter={StaticResource visbilityconv}}"/>
<TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Time,StringFormat={}{0:HH:mm:ss}}"/>
</StackPanel>
</Viewbox>
<Viewbox MaxHeight="{StaticResource FontSize.Value}" HorizontalAlignment="Left" Margin="2">
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"
Background="{StaticResource SemiTransparentGreyBrush2}">
<TextBlock Style="{StaticResource TitleStyle}" Text="间隔:" />
<TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Intervalms}"/>
<TextBlock Style="{StaticResource UnitStyle}" Text="ms" />
<Grid
HorizontalAlignment="Left" >
<Viewbox MaxHeight="{StaticResource GraphInfo2RowMaxHeight}" Margin="{StaticResource ControlMargin}">
<StackPanel>
<StackPanel Orientation="Horizontal" >
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}">
<TextBlock Style="{StaticResource TitleStyle}" Text="AD" Foreground="{StaticResource Brushes.Highlight}" Visibility="{Binding IsADMode,Converter={StaticResource visbilityconv}}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}">
<TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Time,StringFormat={}{0:HH:mm:ss}}"/>
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"
Background="{StaticResource SemiTransparentGreyBrush2}">
<TextBlock Style="{StaticResource TitleStyle}" Text="混合:" />
<TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Mix}"/>
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"
Background="{StaticResource TextTransparentBackgroundBrush}">
<TextBlock Style="{StaticResource TitleStyle}" Text="间隔" />
<TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Intervalms}"/>
<TextBlock Style="{StaticResource UnitStyle}" Text="ms" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"
Background="{StaticResource TextTransparentBackgroundBrush}">
<TextBlock Style="{StaticResource TitleStyle}" Text="混合" />
<TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Mix}"/>
</StackPanel>
</StackPanel>
</StackPanel>
</Viewbox>
</StackPanel>
</Grid>
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" Grid.Column="2" Grid.RowSpan="2">
<Button Click="button_pause_Click" >
<StackPanel Orientation="Horizontal" Grid.Column="1" >
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}" Command="{Binding ClearCmd}">
<iconPacks:PackIconMaterial Kind="Delete"/>
</Button>
<Button Command="{Binding PauseCmd}">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Setter Property="Background" Value="{StaticResource Brushes.Activity}"/>
<Setter Property="Background" Value="{StaticResource Brushes.Fault}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsPaused}" Value="True">
<Setter Property="Background" Value="{StaticResource Brushes.NoAct}"/>
<Setter Property="Background" Value="{StaticResource Brushes.Pass}"/>
</DataTrigger>
</Style.Triggers>
</Style>
......@@ -122,98 +129,54 @@
</iconPacks:PackIconMaterial.Style>
</iconPacks:PackIconMaterial>
</Button>
<Button Click="button_save_Click" IsEnabled="{Binding IsPaused}" >
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Setter Property="Background" Value="{StaticResource Brushes.NoAct}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsPaused}" Value="True">
<Setter Property="Background" Value="{StaticResource Brushes.Activity}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<iconPacks:PackIconMaterial Kind="Floppy" />
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}" IsEnabled="{Binding IsPaused}" Command="{Binding SaveCmd}">
<iconPacks:PackIconMaterial Kind="Floppy"/>
</Button>
<Button Click="button_analyze_Click" IsEnabled="{Binding IsPaused}" >
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Setter Property="Background" Value="{StaticResource Brushes.NoAct}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsPaused}" Value="True">
<Setter Property="Background" Value="{StaticResource Brushes.Activity}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<iconPacks:PackIconMaterial Kind="ChartLine" />
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}" IsEnabled="{Binding IsPaused}" Command="{Binding AnalyzeCmd}">
<iconPacks:PackIconMaterial Kind="ChartLine"/>
</Button>
</StackPanel>
</Grid>
<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="{StaticResource ControlMargin}">
<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}"
<Viewbox MaxHeight="{StaticResource GraphInfo2RowMaxHeight}" Margin="{StaticResource ControlMargin}">
<UniformGrid Columns="2">
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"
Background="{StaticResource TextBrush}">
<TextBlock Style="{StaticResource TitleStyle}"
Foreground="{StaticResource WhiteBrush}"
Background="{StaticResource TextBrush}"
Opacity="0.8"
Text="平均: "
Text="平均"
/>
<TextBlock Style="{StaticResource ValueStyle}"
<TextBlock Style="{StaticResource ValueStyle}"
Foreground="{StaticResource WhiteBrush}"
Background="{StaticResource TextBrush}"
Text="{Binding Average,StringFormat={}{0:F1}}"
/>
</StackPanel>
</Viewbox>
<Viewbox>
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource TitleStyle}"
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"
Background="{StaticResource TextBrush}">
<TextBlock Style="{StaticResource TitleStyle}"
Foreground="{StaticResource WhiteBrush}"
Background="{StaticResource TextBrush}"
Opacity="0.8"
Text="3σ: "
Text="2σ"
/>
<TextBlock Style="{StaticResource ValueStyle}"
<TextBlock Style="{StaticResource ValueStyle}"
Foreground="{StaticResource WhiteBrush}"
Background="{StaticResource TextBrush}"
Text="{Binding Sigma3,StringFormat={}{0:F1}}"
Text="{Binding Sigma2,StringFormat={}{0:F2}}"
/>
</StackPanel>
</Viewbox>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Viewbox >
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource TitleStyle}" Text="最大: "/>
<TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Max,StringFormat={}{0:F1}}"/>
</StackPanel>
</Viewbox>
<Viewbox >
<StackPanel Orientation="Horizontal" >
<TextBlock Style="{StaticResource TitleStyle}"
Text="最小: " />
<TextBlock Style="{StaticResource ValueStyle}"
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" >
<TextBlock Style="{StaticResource TitleStyle}"
Text="最大" />
<TextBlock Style="{StaticResource ValueStyle}"
Text="{Binding Max,StringFormat={}{0:F1}}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" >
<TextBlock Style="{StaticResource TitleStyle}"
Text="最小" />
<TextBlock Style="{StaticResource ValueStyle}"
Text="{Binding Min,StringFormat={}{0:F1}}"/>
</StackPanel>
</Viewbox>
</StackPanel>
</StackPanel>
</UniformGrid>
</Viewbox>
</Grid>
</Grid>
......
using FLY.Thick.Base.Client;
using FLY.Thick.Base.Common;
using FLY.Thick.Base.IService;
using MultiLayout.UiModule;
using FObjBase;
using LiveCharts;
using Misc;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FLY.Thick.Base.IService;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using FLY.Thick.Base.UI;
using Unity;
namespace FLY.Thick.Base.UI.UiModule
......@@ -38,7 +17,7 @@ namespace FLY.Thick.Base.UI.UiModule
InitializeComponent();
}
[InjectionMethod]
public void Init(int id, IUnityContainer container,
public void Init(int id, IUnityContainer container,
IFixService fixService, ITDGageService gageService)
{
//查找参数
......@@ -68,27 +47,6 @@ namespace FLY.Thick.Base.UI.UiModule
w.ShowDialog();
viewModel.IsPaused = isPaused;
}
private void button_pause_Click(object sender, RoutedEventArgs e)
{
viewModel.IsPaused = !viewModel.IsPaused;
}
private void button_save_Click(object sender, RoutedEventArgs e)
{
viewModel.PreSave();
WdSaveDatas w = new WdSaveDatas();
w.Init(viewModel);
w.ShowDialog();
}
private void button_analyze_Click(object sender, RoutedEventArgs e)
{
viewModel.GetDatas(out double intervalms, out List<double> datas);
PgFixAnalyze p = new PgFixAnalyze();
p.Init(intervalms, datas);
MultiLayout.FlyLayoutManager.NavigationService.Navigate(p);
}
}
......
......@@ -11,6 +11,7 @@ using System.Text;
using System.Threading.Tasks;
using FLY.Thick.Base.UI;
using FLY.Thick.Base.Common;
using CommunityToolkit.Mvvm.Input;
namespace FLY.Thick.Base.UI.UiModule
{
......@@ -61,9 +62,9 @@ namespace FLY.Thick.Base.UI.UiModule
/// </summary>
public double Min { get; set; }
/// <summary>
/// 3sigma
/// 2sigma
/// </summary>
public double Sigma3 { get; set; }
public double Sigma2 { get; set; }
#endregion
#region 状态
......@@ -92,6 +93,12 @@ namespace FLY.Thick.Base.UI.UiModule
/// </summary>
public bool IsADMode { get; private set; }
#endregion
public RelayCommand PauseCmd { get; private set; }
public RelayCommand SaveCmd { get; private set; }
public RelayCommand AnalyzeCmd { get; private set; }
public RelayCommand ClearCmd { get; private set; }
/// <summary>
/// 真实接收的数据,与 Values 不一样, Values只是mDatas的一部分
/// </summary>
......@@ -119,6 +126,11 @@ namespace FLY.Thick.Base.UI.UiModule
DynArea dynArea;
public FixGraphVm()
{
PauseCmd = new RelayCommand(Pause);
SaveCmd = new RelayCommand(Save);
AnalyzeCmd = new RelayCommand(Analyze);
ClearCmd = new RelayCommand(UpdateIsADMode);
#region 与数据无关界面参数
XFormatter = (x) =>
{
......@@ -147,7 +159,26 @@ namespace FLY.Thick.Base.UI.UiModule
IsPaused = this.dynArea.ControllerState != CTRL_STATE.FIX;
}
private void Analyze()
{
GetDatas(out double intervalms, out List<double> datas);
var p = new FLY.Thick.Base.UI.UiModule.PgFixAnalyze();
p.Init(intervalms, datas);
MultiLayout.FlyLayoutManager.NavigationService.Navigate(p);
}
private void Save()
{
PreSave();
WdSaveDatas w = new WdSaveDatas();
w.Init(this);
w.ShowDialog();
}
private void Pause()
{
IsPaused = !IsPaused;
}
private void DynArea_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(DynArea.ControllerState)) {
......@@ -426,7 +457,7 @@ namespace FLY.Thick.Base.UI.UiModule
Max = double.NaN;
Min = double.NaN;
Average = double.NaN;
Sigma3 = double.NaN;
Sigma2 = double.NaN;
AutoTarget = double.NaN;
return;
}
......@@ -434,7 +465,7 @@ namespace FLY.Thick.Base.UI.UiModule
Max = mDatas.Max();
Min = mDatas.Min();
Average = mDatas.Average();
Sigma3 = mDatas.Sigma() * 3;
Sigma2 = mDatas.Sigma() * 2;
if (mDatas.Count > 100)
{
......
......@@ -73,23 +73,23 @@ namespace FLY.Thick.Base.UI
/// <returns></returns>
public static bool Authorize(string uiName, out int pwLv, string msg=null)
{
pwLv = 0;
//从容器获取
var container = Application.Current.Properties["container"] as IUnityContainer;
if (container == null)
return true;
return Authorize(uiName, 0, out pwLv, msg);
}
var passwordAuthorize = container.Resolve<PasswordAuthorize>();
int level = passwordAuthorize.GetLv(uiName);
if (level <= 0)
return true;
/// <summary>
///
/// </summary>
/// <param name="level">要求的级别</param>
/// <param name="pwLv">当密码正确时,密码的级别</param>
/// <returns></returns>
public static bool Authorize(int level, out int pwLv)
{
return Authorize(null, level, out pwLv);
}
WdPassword w = new WdPassword();
w.Init(passwordAuthorize, level, msg);
w.Owner = Application.Current.MainWindow;
bool ret = (bool)w.ShowDialog();
pwLv = w.PwLv;
return ret;
public static bool Authorize(int level, string msg)
{
return Authorize(null, level, out int pwLv, msg);
}
/// <summary>
......@@ -98,7 +98,7 @@ namespace FLY.Thick.Base.UI
/// <param name="level">要求的级别</param>
/// <param name="pwLv">当密码正确时,密码的级别</param>
/// <returns></returns>
public static bool Authorize(int level, out int pwLv)
public static bool Authorize(string uiName, int level, out int pwLv, string msg = null)
{
pwLv = 0;
//从容器获取
......@@ -107,11 +107,16 @@ namespace FLY.Thick.Base.UI
return true;
var passwordAuthorize = container.Resolve<PasswordAuthorize>();
if (!string.IsNullOrEmpty(uiName))
{
level = passwordAuthorize.GetLv(uiName);
}
if (level <= 0)
return true;
WdPassword w = new WdPassword();
w.Init(passwordAuthorize, level);
w.Init(passwordAuthorize, level, msg);
w.Owner = Application.Current.MainWindow;
bool ret = (bool)w.ShowDialog();
pwLv = w.PwLv;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment