diff --git a/Netling.Client/App.xaml b/Netling.Client/App.xaml index da1c5d7..3d850f1 100644 --- a/Netling.Client/App.xaml +++ b/Netling.Client/App.xaml @@ -3,6 +3,12 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml"> - + + + + + + + diff --git a/Netling.Client/ResultWindow.xaml.cs b/Netling.Client/ResultWindow.xaml.cs index fbe3170..623eec3 100644 --- a/Netling.Client/ResultWindow.xaml.cs +++ b/Netling.Client/ResultWindow.xaml.cs @@ -98,28 +98,28 @@ private void ClearBaseline(object sender, RoutedEventArgs e) ThreadAffinityValueUserControl.BaselineValue = null; RequestsValueUserControl.BaselineValue = null; - RequestsValueUserControl.ValueBrush = null; + RequestsValueUserControl.BaseLine = BaseLine.Equal; ElapsedValueUserControl.BaselineValue = null; - ElapsedValueUserControl.ValueBrush = null; + ElapsedValueUserControl.BaseLine = BaseLine.Equal; BandwidthValueUserControl.BaselineValue = null; - BandwidthValueUserControl.ValueBrush = null; + BandwidthValueUserControl.BaseLine = BaseLine.Equal; ErrorsValueUserControl.BaselineValue = null; - ErrorsValueUserControl.ValueBrush = null; + ErrorsValueUserControl.BaseLine = BaseLine.Equal; MedianValueUserControl.BaselineValue = null; - MedianValueUserControl.ValueBrush = null; + MedianValueUserControl.BaseLine = BaseLine.Equal; StdDevValueUserControl.BaselineValue = null; - StdDevValueUserControl.ValueBrush = null; + StdDevValueUserControl.BaseLine = BaseLine.Equal; MinValueUserControl.BaselineValue = null; - MinValueUserControl.ValueBrush = null; + MinValueUserControl.BaseLine = BaseLine.Equal; MaxValueUserControl.BaselineValue = null; - MaxValueUserControl.ValueBrush = null; + MaxValueUserControl.BaseLine = BaseLine.Equal; } private void LoadBaseline(ResultWindowItem baseline) @@ -129,35 +129,35 @@ private void LoadBaseline(ResultWindowItem baseline) ThreadAffinityValueUserControl.BaselineValue = baseline.ThreadAffinity ? "ON" : "OFF"; RequestsValueUserControl.BaselineValue = $"{baseline.JobsPerSecond:#,0}"; - RequestsValueUserControl.ValueBrush = GetValueBrush(_resultWindowItem.JobsPerSecond, baseline.JobsPerSecond); + RequestsValueUserControl.BaseLine = GetBaseline(_resultWindowItem.JobsPerSecond, baseline.JobsPerSecond); ElapsedValueUserControl.BaselineValue = $"{baseline.ElapsedSeconds:#,0}"; BandwidthValueUserControl.BaselineValue = $"{baseline.Bandwidth:0}"; - BandwidthValueUserControl.ValueBrush = GetValueBrush(_resultWindowItem.Bandwidth, baseline.Bandwidth); + BandwidthValueUserControl.BaseLine = GetBaseline(_resultWindowItem.Bandwidth, baseline.Bandwidth); ErrorsValueUserControl.BaselineValue = baseline.Errors.ToString(); - ErrorsValueUserControl.ValueBrush = GetValueBrush(baseline.Errors, _resultWindowItem.Errors); + ErrorsValueUserControl.BaseLine = GetBaseline(baseline.Errors, _resultWindowItem.Errors); MedianValueUserControl.BaselineValue = string.Format(baseline.Median > 5 ? "{0:#,0}" : "{0:0.000}", baseline.Median); - MedianValueUserControl.ValueBrush = GetValueBrush(baseline.Median, _resultWindowItem.Median); + MedianValueUserControl.BaseLine = GetBaseline(baseline.Median, _resultWindowItem.Median); StdDevValueUserControl.BaselineValue = string.Format(baseline.StdDev > 5 ? "{0:#,0}" : "{0:0.000}", baseline.StdDev); - StdDevValueUserControl.ValueBrush = GetValueBrush(baseline.StdDev, _resultWindowItem.StdDev); + StdDevValueUserControl.BaseLine = GetBaseline(baseline.StdDev, _resultWindowItem.StdDev); MinValueUserControl.BaselineValue = string.Format(baseline.Min > 5 ? "{0:#,0}" : "{0:0.000}", baseline.Min); - MinValueUserControl.ValueBrush = GetValueBrush(baseline.Min, _resultWindowItem.Min); + MinValueUserControl.BaseLine = GetBaseline(baseline.Min, _resultWindowItem.Min); MaxValueUserControl.BaselineValue = string.Format(baseline.Max > 5 ? "{0:#,0}" : "{0:0.000}", baseline.Max); - MaxValueUserControl.ValueBrush = GetValueBrush(baseline.Max, _resultWindowItem.Max); + MaxValueUserControl.BaseLine = GetBaseline(baseline.Max, _resultWindowItem.Max); } - private Brush GetValueBrush(double v1, double v2) + private BaseLine GetBaseline(double v1, double v2) { if (Math.Abs(v1 - v2) < 0.001) - return null; + return BaseLine.Equal; - return v1 > v2 ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); + return v1 > v2 ? BaseLine.Better : BaseLine.Worse; } } diff --git a/Netling.Client/ValueUserControl.xaml b/Netling.Client/ValueUserControl.xaml index f27760f..af206da 100644 --- a/Netling.Client/ValueUserControl.xaml +++ b/Netling.Client/ValueUserControl.xaml @@ -7,7 +7,7 @@ mc:Ignorable="d" d:DesignHeight="60" d:DesignWidth="300" VerticalContentAlignment="Top"> - + diff --git a/Netling.Client/ValueUserControl.xaml.cs b/Netling.Client/ValueUserControl.xaml.cs index 4ca0b12..54be6fa 100644 --- a/Netling.Client/ValueUserControl.xaml.cs +++ b/Netling.Client/ValueUserControl.xaml.cs @@ -38,24 +38,41 @@ public string BaselineValue } } - public Brush ValueBrush + private BaseLine _baseLine; + + public BaseLine BaseLine { - get { return ValueTextBlock.Foreground; } + get { return _baseLine; } set { - if (value != null) - { - ValueTextBlock.Foreground = value; - UnitTextBlock.Foreground = value; - ValueBorder.BorderBrush = value; - } - else + _baseLine = value; + + switch (value) { - ValueTextBlock.Foreground = new SolidColorBrush(Colors.Black); - UnitTextBlock.Foreground = new SolidColorBrush(Colors.Black); - ValueBorder.BorderBrush = new SolidColorBrush(Colors.DarkGray); + case BaseLine.Equal: + ValueTextBlock.Foreground = new SolidColorBrush(Colors.Black); + UnitTextBlock.Foreground = new SolidColorBrush(Colors.Black); + ValueBorder.BorderBrush = new SolidColorBrush(Colors.DarkGray); + break; + case BaseLine.Worse: + ValueTextBlock.Foreground = new SolidColorBrush(Colors.Red); + UnitTextBlock.Foreground = new SolidColorBrush(Colors.Red); + ValueBorder.BorderBrush = (Brush)Application.Current.Resources["RedBrush"]; + break; + case BaseLine.Better: + ValueTextBlock.Foreground = new SolidColorBrush(Colors.Green); + UnitTextBlock.Foreground = new SolidColorBrush(Colors.Green); + ValueBorder.BorderBrush = new SolidColorBrush(Colors.Green); + break; } } } } + + public enum BaseLine + { + Equal, + Worse, + Better + } }