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