Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
swdev:dotnet:wpf:componentone_controls [2010/09/16 16:30] smayr created |
swdev:dotnet:wpf:componentone_controls [2010/09/17 09:48] (current) smayr |
||
---|---|---|---|
Line 1: | Line 1: | ||
== ComponentOne Controls == | == ComponentOne Controls == | ||
- | + | === C1Chart | |
- | === Chart === | + | |
Example of Audiogram using C1Chart: | Example of Audiogram using C1Chart: | ||
<code xml> | <code xml> | ||
+ | < | ||
+ | xmlns: | ||
+ | xmlns: | ||
+ | xmlns: | ||
+ | xmlns: | ||
+ | > | ||
+ | ... | ||
<Border Background=" | <Border Background=" | ||
Line 93: | Line 99: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | Example of Fitting Chart: | ||
+ | <code xml> | ||
+ | <Border Name=" | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <Border Name=" | ||
+ | Background=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | C#: | ||
+ | <code csharp> | ||
+ | |||
+ | public WindowMain() | ||
+ | { | ||
+ | InitializeComponent(); | ||
+ | InitializeBinauralAudiogramChart(); | ||
+ | InitializeFittingCharts(); | ||
+ | AudiogramLeft.InitializeChart(); | ||
+ | AudiogramRight.InitializeChart(); | ||
+ | |||
+ | // initialize single audiograms | ||
+ | AudiogramLeft.AudiogramChart.Tag=0; | ||
+ | |||
+ | SelectScreen(" | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | |||
+ | private void InitializeBinauralAudiogramChart() | ||
+ | { | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | |||
+ | // | ||
+ | //xbase.Tag = chart.View.AxisX; | ||
+ | // | ||
+ | // | ||
+ | |||
+ | // | ||
+ | //ybase.Tag = chart.View.AxisY; | ||
+ | // | ||
+ | // | ||
+ | |||
+ | // | ||
+ | |||
+ | chartAudiogramBinaural.ChartType = ChartType.LineSymbols; | ||
+ | |||
+ | // create data series | ||
+ | chartAudiogramBinaural.Data.Children.Clear(); | ||
+ | //// | ||
+ | //// | ||
+ | //// | ||
+ | // | ||
+ | // | ||
+ | double[] DataX = new double[10]; | ||
+ | double[] DataYRight = new double[10]; | ||
+ | double[] DataYLeft = new double[10]; | ||
+ | DataX[0] = .250; | ||
+ | DataX[1] = .500; | ||
+ | DataX[2] = .750; | ||
+ | DataX[3] = 1.000; | ||
+ | DataX[4] = 1.500; | ||
+ | DataX[5] = 2.000; | ||
+ | DataX[6] = 3.000; | ||
+ | DataX[7] = 4.000; | ||
+ | DataX[8] = 6.000; | ||
+ | DataX[9] = 8.000; | ||
+ | |||
+ | Random randNum = new Random(); | ||
+ | for (int i = 0; i < DataYRight.Length; | ||
+ | { | ||
+ | DataYRight[i] = randNum.Next(65); | ||
+ | } | ||
+ | chartAudiogramBinaural.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | |||
+ | for (int i = 0; i < DataYRight.Length; | ||
+ | { | ||
+ | DataYLeft[i] = randNum.Next(35); | ||
+ | } | ||
+ | chartAudiogramBinaural.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | |||
+ | // set dataseries colors and symbol markers | ||
+ | chartAudiogramBinaural.Data.Children[0].SymbolMarker = Marker.DiagonalCross; | ||
+ | chartAudiogramBinaural.Data.Children[0].SymbolFill = Brushes.White; | ||
+ | chartAudiogramBinaural.Data.Children[0].SymbolStroke = Brushes.Blue; | ||
+ | chartAudiogramBinaural.Data.Children[0].ConnectionFill = Brushes.Blue; | ||
+ | chartAudiogramBinaural.Data.Children[1].SymbolMarker = Marker.Dot; | ||
+ | chartAudiogramBinaural.Data.Children[1].SymbolFill = Brushes.White; | ||
+ | chartAudiogramBinaural.Data.Children[1].SymbolStroke = Brushes.Red; | ||
+ | chartAudiogramBinaural.Data.Children[1].ConnectionFill = Brushes.Red; | ||
+ | |||
+ | // minor grid | ||
+ | chartAudiogramBinaural.View.AxisX.MinorUnit = .50; | ||
+ | chartAudiogramBinaural.View.AxisX.MinorGridStroke = new SolidColorBrush(Colors.LightGray); | ||
+ | chartAudiogramBinaural.View.AxisX.MinorGridStrokeThickness = 0.5; | ||
+ | |||
+ | // major grid | ||
+ | chartAudiogramBinaural.View.AxisX.MajorGridStroke = new SolidColorBrush(Colors.DarkGray); | ||
+ | // | ||
+ | chartAudiogramBinaural.View.AxisX.MajorUnit = 1; | ||
+ | |||
+ | // X axis Min/Max | ||
+ | chartAudiogramBinaural.View.AxisX.Min = .100; | ||
+ | chartAudiogramBinaural.View.AxisX.Max = 10; | ||
+ | |||
+ | // log base | ||
+ | chartAudiogramBinaural.View.AxisX.LogBase = 10; | ||
+ | |||
+ | chartAudiogramBinaural.View.AxisY.MajorGridStroke = new SolidColorBrush(Colors.DarkGray); | ||
+ | // | ||
+ | |||
+ | // X labels | ||
+ | // | ||
+ | //string[] XLabels = new string[10] { " | ||
+ | //string[] XLabels = new string[32] { " | ||
+ | // "", | ||
+ | // "", | ||
+ | // "", | ||
+ | //string[] XLabels = new string[9] { " | ||
+ | string[] XLabels = new string[9] { " | ||
+ | chartAudiogramBinaural.Data.ItemNames = XLabels; | ||
+ | } | ||
+ | |||
+ | |||
+ | private void InitializeFittingCharts() | ||
+ | { | ||
+ | // set chart type | ||
+ | chartLeft.ChartType = ChartType.LineSmoothed; | ||
+ | chartRight.ChartType = ChartType.LineSmoothed; | ||
+ | |||
+ | // clear data series | ||
+ | chartLeft.Data.Children.Clear(); | ||
+ | chartRight.Data.Children.Clear(); | ||
+ | |||
+ | // create data series | ||
+ | double[] DataX = new double[10]; | ||
+ | double[] DataYLoud = new double[10]; | ||
+ | double[] DataYAvg = new double[10]; | ||
+ | double[] DataYSoft = new double[10]; | ||
+ | double[] DataYArea1 = new double[10] { 140, 140, 140, 140, 140, 140, 140, 140, 140, 140 }; | ||
+ | double[] DataYArea2 = new double[10] { 70, 70, 70, 80, 80, 80, 70, 70, 60, 60 }; | ||
+ | double[] DataYArea3 = new double[10] { 10, 10, 10, 20, 20, 20, 10, 10, 10, 10 }; | ||
+ | DataX[0] = .250; | ||
+ | DataX[1] = .500; | ||
+ | DataX[2] = .750; | ||
+ | DataX[3] = 1.000; | ||
+ | DataX[4] = 1.500; | ||
+ | DataX[5] = 2.000; | ||
+ | DataX[6] = 3.000; | ||
+ | DataX[7] = 4.000; | ||
+ | DataX[8] = 6.000; | ||
+ | DataX[9] = 8.000; | ||
+ | |||
+ | Random randNum = new Random(); | ||
+ | |||
+ | // shaded area background | ||
+ | chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | for (int i = 0; i < 3; i++) | ||
+ | { | ||
+ | chartLeft.Data.Children[i].ChartType = ChartType.AreaSmoothed; | ||
+ | chartRight.Data.Children[i].ChartType = ChartType.AreaSmoothed; | ||
+ | chartLeft.Data.Children[i].ConnectionFill = Brushes.LightGray; | ||
+ | chartLeft.Data.Children[i].ConnectionStroke = Brushes.Transparent; | ||
+ | chartRight.Data.Children[i].ConnectionFill = Brushes.LightGray; | ||
+ | chartRight.Data.Children[i].ConnectionStroke = Brushes.Transparent; | ||
+ | } | ||
+ | chartLeft.Data.Children[1].ConnectionFill = Brushes.White; | ||
+ | chartRight.Data.Children[1].ConnectionFill = Brushes.White; | ||
+ | |||
+ | // Loud series | ||
+ | for (int i = 0; i < DataYLoud.Length; | ||
+ | { | ||
+ | DataYLoud[i] = randNum.Next(35); | ||
+ | } | ||
+ | chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | // | ||
+ | |||
+ | // Avg series | ||
+ | for (int i = 0; i < DataYAvg.Length; | ||
+ | { | ||
+ | DataYAvg[i] = randNum.Next(45); | ||
+ | } | ||
+ | chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | // | ||
+ | |||
+ | // Soft series | ||
+ | for (int i = 0; i < DataYAvg.Length; | ||
+ | { | ||
+ | DataYSoft[i] = randNum.Next(65); | ||
+ | } | ||
+ | chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, | ||
+ | // | ||
+ | |||
+ | // set dataseries colors and symbol markers | ||
+ | chartLeft.Data.Children[3].ConnectionFill = Brushes.LightCoral; | ||
+ | chartLeft.Data.Children[4].ConnectionFill = Brushes.Pink; | ||
+ | chartLeft.Data.Children[5].ConnectionFill = Brushes.DarkGray; | ||
+ | chartRight.Data.Children[3].ConnectionFill = Brushes.LightCoral; | ||
+ | chartRight.Data.Children[4].ConnectionFill = Brushes.Pink; | ||
+ | chartRight.Data.Children[5].ConnectionFill = Brushes.DarkGray; | ||
+ | for (int i = 3; i < 6; i++) | ||
+ | { | ||
+ | chartLeft.Data.Children[i].SymbolMarker = Marker.None; | ||
+ | chartRight.Data.Children[i].SymbolMarker = Marker.None; | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | } | ||
+ | |||
+ | // minor grid | ||
+ | chartLeft.View.AxisX.MinorUnit = 1; | ||
+ | chartLeft.View.AxisX.MinorGridStroke = new SolidColorBrush(Colors.LightGray); | ||
+ | chartLeft.View.AxisX.MinorGridStrokeThickness = 0.5; | ||
+ | chartRight.View.AxisX.MinorUnit = 1; | ||
+ | chartRight.View.AxisX.MinorGridStroke = new SolidColorBrush(Colors.LightGray); | ||
+ | chartRight.View.AxisX.MinorGridStrokeThickness = 0.5; | ||
+ | |||
+ | // major grid | ||
+ | chartLeft.View.AxisX.MajorGridStroke = new SolidColorBrush(Colors.DarkGray); | ||
+ | // | ||
+ | chartRight.View.AxisX.MajorGridStroke = new SolidColorBrush(Colors.DarkGray); | ||
+ | // | ||
+ | |||
+ | // log base | ||
+ | // | ||
+ | // | ||
+ | |||
+ | chartLeft.View.AxisY.MajorGridStroke = new SolidColorBrush(Colors.DarkGray); | ||
+ | // | ||
+ | chartRight.View.AxisY.MajorGridStroke = new SolidColorBrush(Colors.DarkGray); | ||
+ | // | ||
+ | } | ||
+ | |||
+ | |||
+ | private void btnSelectFittingSide_Click(object sender, RoutedEventArgs e) | ||
+ | { | ||
+ | Thickness margin = new Thickness(); | ||
+ | margin.Left = 5; | ||
+ | margin.Top = 5; | ||
+ | margin.Right = 5; | ||
+ | margin.Bottom = 5; | ||
+ | // | ||
+ | // | ||
+ | chartLeft.Margin = margin; | ||
+ | chartRight.Margin = margin; | ||
+ | chartLeft.IsEnabled = true; | ||
+ | chartRight.IsEnabled = true; | ||
+ | chartLeft.Opacity = 1.0; | ||
+ | chartRight.Opacity = 1.0; | ||
+ | brdAudioChartHeaderLeft.Opacity = 1.0; | ||
+ | brdAudioChartHeaderRight.Opacity = 1.0; | ||
+ | |||
+ | SolidColorBrush DefaultBrush = new SolidColorBrush(); | ||
+ | DefaultBrush.Color = Color.FromArgb(255, | ||
+ | Thickness DefaultBrushSize = new Thickness(); | ||
+ | DefaultBrushSize.Left = 2.0; | ||
+ | DefaultBrushSize.Top = 2.0; | ||
+ | DefaultBrushSize.Right = 2.0; | ||
+ | DefaultBrushSize.Bottom = 2.0; | ||
+ | |||
+ | // | ||
+ | // | ||
+ | brdAudioChartLeft.BorderThickness = DefaultBrushSize; | ||
+ | brdAudioChartRight.BorderThickness = DefaultBrushSize; | ||
+ | |||
+ | if (sender == btnSelectLeftFitting) | ||
+ | { | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | brdAudioChartHeaderRight.Opacity = 0.5; | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | //// | ||
+ | // | ||
+ | chartRight.IsEnabled = false; | ||
+ | chartRight.Opacity = 0.5; | ||
+ | } | ||
+ | else if (sender == btnSelectRightFitting) | ||
+ | { | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | brdAudioChartHeaderLeft.Opacity = 0.5; | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | //// | ||
+ | // | ||
+ | chartLeft.IsEnabled = false; | ||
+ | chartLeft.Opacity = 0.5; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | } | ||
+ | } | ||
+ |