ComponentOne Controls
C1Chart
Example of Audiogram using C1Chart:
<Window... xmlns:c1chart="http://schemas.componentone.com/xaml/c1chart" xmlns:c1ext="http://schemas.componentone.com/wpf/C1Extended" xmlns:c1="http://schemas.componentone.com/wpf/Basic" xmlns:c1grid="http://schemas.componentone.com/wpf/C1DataGrid" > ... <Border Background="White" BorderBrush="LightGray" BorderThickness="2" CornerRadius="10,10,10,10"> <c1chart:C1Chart Name="chartAudiogramBinaural" ChartType="LineSymbolsSmoothed" Margin="5"> <c1chart:C1Chart.View> <c1chart:ChartView> <c1chart:ChartView.AxisX> <!--<c1chart:Axis Max="9" Min="0" MajorUnit="1" MajorGridStroke="DarkGray" LogBase="10">--> <c1chart:Axis Min=".1" Max="10" MajorUnit="1" MajorGridStroke="Transparent" MinorUnit=".250" LogBase="10" MajorTickThickness="1" MinorTickThickness="0"> <c1chart:Axis.Title> <TextBlock Foreground="Crimson" Text="Frequency (Hz)" TextAlignment="Center" /> </c1chart:Axis.Title> </c1chart:Axis> </c1chart:ChartView.AxisX> <c1chart:ChartView.AxisY> <c1chart:Axis AutoMax="False" AutoMin="False" MajorUnit="20" Max="125" Min="-10" MajorGridStroke="LightGray" Reversed="True"> <c1chart:Axis.Title> <TextBlock Foreground="Crimson" Text="Hearing Level (dB)" TextAlignment="Center" /> </c1chart:Axis.Title> </c1chart:Axis> </c1chart:ChartView.AxisY> </c1chart:ChartView> </c1chart:C1Chart.View> <c1chart:C1Chart.Data> <c1chart:ChartData> <!--<c1chart:ChartData.ItemNames>100 250 500 750 1k . 1.5k . 2k . . . . . . . 4k 8k . 10k</c1chart:ChartData.ItemNames>--> <!--<c1chart:ChartData.ItemNames>125 250 500 1k 2k 4k 8k</c1chart:ChartData.ItemNames>--> <c1chart:ChartData.ItemNames>250 1k 2k . 4k . 6k . 8k</c1chart:ChartData.ItemNames> <!--<c1chart:DataSeries ConnectionFill="Blue" Label="Left" SymbolFill="White" SymbolMarker="DiagonalCross" SymbolStroke="Blue" Values="20 22 19 24 25 65 85 55 55 45" />--> <!--<c1chart:DataSeries ConnectionFill="Red" Label="Right" SymbolFill="White" SymbolStroke="Red" Values="8 12 10 12 15 45 45 55 35 35" />--> <!--<c1chart:DataSeries ChartType="LineSmoothed" ConnectionFill="Green" Label="Sample" SymbolFill="White" SymbolStroke="Red" Values="40 100 20 20 20 20 40 40 40 40" />--> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="Red" Label="Right" SymbolMarker="Dot" SymbolFill="White" SymbolStroke="Red" Values="10 15 10 15 15 45 45 45 35 35" XValues=".250 .500 .750 1.0 1.5 2.0 3.0 4.0 6.0 8.0"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="Blue" Label="Left" SymbolMarker="DiagonalCross" SymbolFill="White" SymbolStroke="Blue" Values="40 40 NaN 50 55 65 65 85 65 55 45" XValues=".125 .250 .500 .750 1.0 1.5 2.0 3.0 4.0 6.0 8.0"/> <!--Values="0.25,20 0.5,35 0.75,30 1.0,35 1.5,35 2.0,45 3.0,45 4.0,55 6.0,35 8.0,35" />--> <!--AxisX="0.250 0.500 0.750 1.0 1.5 2 3 4 6 8" AxisY="20 25 10 15 15 45 45 55 35 35" />--> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" Values="-10 130" XValues=".25 .25"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" Values="-10 130" XValues=".5 .5"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" ConnectionStrokeThickness="0.5" Values="-10 130" XValues=".750 .750"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" Values="-10 130" XValues="1 1"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" ConnectionStrokeThickness="0.5" Values="-10 130" XValues="1.5 1.5"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" Values="-10 130" XValues="2 2"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" ConnectionStrokeThickness="0.5" Values="-10 130" XValues="3 3"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" Values="-10 130" XValues="4 4"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" ConnectionStrokeThickness="0.5" Values="-10 130" XValues="6 6"/> <c1chart:XYDataSeries ChartType="Line" ConnectionFill="LightGray" Label="Left" SymbolMarker="None" ConnectionStrokeDashes=".8" Values="-10 130" XValues="8 8"/> </c1chart:ChartData> </c1chart:C1Chart.Data> <c1chart:C1ChartLegend DockPanel.Dock="Right" Visibility="Collapsed" /> <!--<TextBlock Panel.ZIndex="5" Margin="35,160,0,0">250</TextBlock> <TextBlock Panel.ZIndex="5" Margin="65,160,0,0">500</TextBlock>--> </c1chart:C1Chart> </Border>
Example of Fitting Chart:
<Border Name="brdAudioChartHeaderRight" Grid.Row="0" CornerRadius="10,10,0,0"> <Border.Background> <ImageBrush ImageSource="/images/backgrounds/bg-toolbar-red.jpg" /> </Border.Background> </Border> <c1chart:C1Chart Name="chartRight" Grid.Row="1" Margin="5" ChartType="LineSmoothed" > <c1chart:C1Chart.View> <c1chart:ChartView> <c1chart:ChartView.AxisX> <c1chart:Axis Max="9" Min="0" MajorGridStroke="DarkGray"> <c1chart:Axis.Title> <TextBlock Foreground="Crimson" Text="Frequency (Hz)" TextAlignment="Center" /> </c1chart:Axis.Title> </c1chart:Axis> </c1chart:ChartView.AxisX> <c1chart:ChartView.AxisY> <c1chart:Axis AutoMax="False" AutoMin="False" MajorUnit="20" Max="140" Min="-10" MajorGridStroke="DarkGray"> <c1chart:Axis.Title> <TextBlock Foreground="Crimson" Text="Acoustic Gain (dB)" TextAlignment="Center" /> </c1chart:Axis.Title> </c1chart:Axis> </c1chart:ChartView.AxisY> </c1chart:ChartView> </c1chart:C1Chart.View> <c1chart:C1Chart.Data> <c1chart:ChartData> <c1chart:ChartData.ItemNames>250 500 750 1k 1.5k 2k 3k 4k 6k 8k</c1chart:ChartData.ItemNames> <c1chart:DataSeries ChartType="AreaSmoothed" ConnectionStroke="Transparent" ConnectionFill="LightGray" Label="area" Values="-10 -10 -10 -10 -10 -10 -10 -10 -10 -10" /> <c1chart:DataSeries ChartType="AreaSmoothed" ConnectionStroke="Transparent" ConnectionFill="LightGray" Label="area" Values="140 140 140 140 140 140 140 140 140 140" /> <c1chart:DataSeries ChartType="AreaSmoothed" ConnectionStroke="Transparent" ConnectionFill="White" Label="area" Values="50 50 90 90 90 90 90 90 70 70" /> <c1chart:DataSeries ChartType="AreaSmoothed" ConnectionStroke="Transparent" ConnectionFill="LightGray" Label="area" Values="5 10 10 10 10 30 30 40 30 30" /> <c1chart:DataSeries ChartType="Line" ConnectionFill="Transparent" ConnectionStroke="LightGray" ConnectionStrokeDashes="1" Label="grid" Values="80 80 80 80 80 80 80 80 80 80" /> <c1chart:DataSeries ChartType="Line" ConnectionFill="Transparent" ConnectionStroke="LightGray" ConnectionStrokeDashes="1" Label="grid" Values="60 60 60 60 60 60 60 60 60 60" /> <c1chart:DataSeries ChartType="Line" ConnectionFill="Transparent" ConnectionStroke="LightGray" ConnectionStrokeDashes="1" Label="grid" Values="40 40 40 40 40 40 40 40 40 40" /> <c1chart:DataSeries ChartType="Line" ConnectionFill="Transparent" ConnectionStroke="LightGray" ConnectionStrokeDashes="1" Label="grid" Values="20 20 20 20 20 20 20 20 20 20" /> <c1chart:DataSeries ConnectionFill="LightCoral" Label="Loud" SymbolFill="White" SymbolMarker="None" SymbolStroke="LightCoral" Values="20 22 19 24 25 65 85 55 55 45" /> <c1chart:DataSeries ConnectionFill="Pink" Label="Avg" SymbolFill="White" SymbolMarker="None" SymbolStroke="Pink" Values="18 15 12 14 15 50 55 65 45 45" /> <c1chart:DataSeries ConnectionFill="LightGray" Label="Soft" SymbolFill="White" SymbolMarker="None" SymbolStroke="Gray" Values="8 12 10 12 15 45 45 55 35 35" /> </c1chart:ChartData> </c1chart:C1Chart.Data> <c1chart:C1ChartLegend DockPanel.Dock="Right" Visibility="Collapsed" /> <c1chart:C1Chart.ContextMenu> <ContextMenu> <MenuItem Header="Select Graph Type"> <!--<MenuItem.Icon> <Image Source="Images/cut.png" /> </MenuItem.Icon>--> <MenuItem Header="2-cc Coupler Gain"/> <MenuItem Header="2-cc I/O Curve"/> <MenuItem Header="Ear Simulator Gain"/> <MenuItem Header="Ear Simulator I/O Curve"/> <MenuItem Header="Real Ear Insertion Gain"/> <MenuItem Header="Real Ear I/O Curve"/> <MenuItem Header="Real Ear Insertion Gain"/> <MenuItem Header="Real Ear Aided Gain"/> <MenuItem Header="Speech-o-gram"/> <MenuItem Header="Aided Thresholds"/> <MenuItem Header="RESR"/> <MenuItem Header="2cc OSPL 90"/> </MenuItem> <MenuItem Header="View Targets"> <MenuItem Header="Soft" IsCheckable="True" IsChecked="True"/> <MenuItem Header="Average" IsCheckable="True" IsChecked="True"/> <MenuItem Header="Loud" IsCheckable="True" IsChecked="True"/> <MenuItem Header="Output90" IsCheckable="True" IsChecked="False"/> </MenuItem> <MenuItem Command="Copy"> <!--<MenuItem.Icon> <Image Source="Images/copy.png" /> </MenuItem.Icon> --> </MenuItem> <MenuItem Command="Print"> <!--<MenuItem.Icon> <Image Source="Images/print.png" /> </MenuItem.Icon> --> </MenuItem> </ContextMenu> </c1chart:C1Chart.ContextMenu> </c1chart:C1Chart> </Grid> </Border> <Border Name="brdAudioChartLeft" CornerRadius="10" Grid.Column="2" Grid.Row="0" Background="White" BorderBrush="LightGray" BorderThickness="2" > <Grid> <Grid.RowDefinitions> <RowDefinition Height="20"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Border Name="brdAudioChartHeaderLeft" Grid.Row="0" CornerRadius="10,10,0,0" Height="20"> <Border.Background> <ImageBrush ImageSource="/images/backgrounds/bg-toolbar.jpg" /> </Border.Background> </Border> <c1chart:C1Chart Name="chartLeft" Grid.Row="1" Margin="5" ChartType="LineSmoothed" > <c1chart:C1Chart.View> <c1chart:ChartView> <c1chart:ChartView.AxisX> <c1chart:Axis Max="9" Min="0" MajorGridStroke="DarkGray"> <c1chart:Axis.Title> <TextBlock Foreground="Crimson" Text="Frequency (Hz)" TextAlignment="Center" /> </c1chart:Axis.Title> </c1chart:Axis> </c1chart:ChartView.AxisX> <c1chart:ChartView.AxisY> <c1chart:Axis AutoMax="False" AutoMin="False" MajorUnit="20" Max="140" Min="-10" MajorGridStroke="DarkGray"> <c1chart:Axis.Title> <TextBlock Foreground="Crimson" Text="Acoustic Gain (dB)" TextAlignment="Center" /> </c1chart:Axis.Title> </c1chart:Axis> </c1chart:ChartView.AxisY> </c1chart:ChartView> </c1chart:C1Chart.View> <c1chart:C1Chart.Data> <c1chart:ChartData> <c1chart:ChartData.ItemNames>250 500 750 1k 1.5k 2k 3k 4k 6k 8k</c1chart:ChartData.ItemNames> <c1chart:DataSeries ConnectionFill="LightCoral" Label="Loud" SymbolFill="White" SymbolMarker="None" SymbolStroke="LightCoral" Values="20 22 19 24 25 65 85 55 55 45" /> <c1chart:DataSeries ConnectionFill="Pink" Label="Avg" SymbolFill="White" SymbolMarker="None" SymbolStroke="Pink" Values="18 15 12 14 15 50 55 65 45 45" /> <c1chart:DataSeries ConnectionFill="LightGray" Label="Soft" SymbolFill="White" SymbolMarker="None" SymbolStroke="Gray" Values="8 12 10 12 15 45 45 55 35 35" /> </c1chart:ChartData> </c1chart:C1Chart.Data> <c1chart:C1ChartLegend DockPanel.Dock="Right" Visibility="Collapsed"/> <c1chart:C1Chart.ContextMenu> <ContextMenu> <MenuItem Header="Select Graph Type"> <!--<MenuItem.Icon> <Image Source="Images/cut.png" /> </MenuItem.Icon>--> <MenuItem Header="2-cc Coupler Gain"/> <MenuItem Header="2-cc I/O Curve"/> <MenuItem Header="Ear Simulator Gain"/> <MenuItem Header="Ear Simulator I/O Curve"/> <MenuItem Header="Real Ear Insertion Gain"/> <MenuItem Header="Real Ear I/O Curve"/> <MenuItem Header="Real Ear Insertion Gain"/> <MenuItem Header="Real Ear Aided Gain"/> <MenuItem Header="Speech-o-gram"/> <MenuItem Header="Aided Thresholds"/> <MenuItem Header="RESR"/> <MenuItem Header="2cc OSPL 90"/> </MenuItem> <MenuItem Header="View Targets"> <MenuItem Header="Soft" IsCheckable="True" IsChecked="True"/> <MenuItem Header="Average" IsCheckable="True" IsChecked="True"/> <MenuItem Header="Loud" IsCheckable="True" IsChecked="True"/> <MenuItem Header="Output90" IsCheckable="True" IsChecked="False"/> </MenuItem> <MenuItem Command="Copy"> <!--<MenuItem.Icon> <Image Source="Images/copy.png" /> </MenuItem.Icon>--> </MenuItem> <MenuItem Command="Print"> <!--<MenuItem.Icon> <Image Source="Images/print.png" /> </MenuItem.Icon>--> </MenuItem> </ContextMenu> </c1chart:C1Chart.ContextMenu> </c1chart:C1Chart> </Grid> </Border>
C#: <code csharp>
public WindowMain()
{ InitializeComponent(); InitializeBinauralAudiogramChart(); InitializeFittingCharts(); AudiogramLeft.InitializeChart(); AudiogramRight.InitializeChart();
// initialize single audiograms AudiogramLeft.AudiogramChart.Tag=0;
SelectScreen("patient"); }
…
private void InitializeBinauralAudiogramChart() { //templ.Visibility = Visibility.Collapsed; //templ.Checked += (s, a) => { UpdateTemplate(chart.View.AxisX); UpdateTemplate(chart.View.AxisY); }; //templ.Unchecked += (s, a) => { UpdateTemplate(chart.View.AxisX); UpdateTemplate(chart.View.AxisY); };
//xbase.ItemsSource = new string[] { "None", "e", "10" }; //xbase.Tag = chart.View.AxisX; //xbase.SelectionChanged += new SelectionChangedEventHandler(base_SelectionChanged); //xbase.SelectedIndex = 2;
//ybase.ItemsSource = new string[] { "None", "e", "10" }; //ybase.Tag = chart.View.AxisY; //ybase.SelectionChanged += new SelectionChangedEventHandler(base_SelectionChanged); //ybase.SelectedIndex = 2;
//templ.IsChecked = true;
chartAudiogramBinaural.ChartType = ChartType.LineSymbols; //ChartType.LineSmoothed;
// create data series chartAudiogramBinaural.Data.Children.Clear(); ////chartAudiogramBinaural.Data.Children.Add(Function.CreateDataSeries(0.01, 10, 100, (val) => Math.Log10(val), "y(x)=log(x)")); ////chartAudiogramBinaural.Data.Children.Add(Function.CreateDataSeries(0.01, 10, 100, (val) => val, "y(x)=x")); ////chartAudiogramBinaural.Data.Children.Add(Function.CreateDataSeries(0.01, 1, 100, (val) => Math.Pow(10, val), "y(x)=10^x")); //chartAudiogramBinaural.Data.Children.Add(Function.CreateDataSeries(.250, 8, 10, (val) => Math.Log10(val), "Left")); //chartAudiogramBinaural.Data.Children.Add(Function.CreateDataSeries(250, 8000, 10, (val) => Math.Log10(val), "Right")); 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; i++) { DataYRight[i] = randNum.Next(65); } chartAudiogramBinaural.Data.Children.Add(Function.CreateDataSeries(DataX, DataYRight, "Left"));
for (int i = 0; i < DataYRight.Length; i++) { DataYLeft[i] = randNum.Next(35); } chartAudiogramBinaural.Data.Children.Add(Function.CreateDataSeries(DataX, DataYLeft, "Right"));
// 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.MajorGridStrokeDashes = null; 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); //chartAudiogramBinaural.View.AxisY.MajorGridStrokeDashes = null;
// X labels //chartAudiogramBinaural.ChartData.ItemNames = (Array here); //string[] XLabels = new string[10] { "250", "500", "750", "1k", "1.5k", "2k", "3k", "4k", "6k", "8k" }; //string[] XLabels = new string[32] { "250", "500", "750", "1k", "", "1.5k", "", "2k", "", "", // "", "3k", "", "", "", "4k", "", "", "", "", // "", "", "", "6k", "", "", "", "", "", "", // "", "8k" }; //string[] XLabels = new string[9] { "250", "1k", "2k", "3k", "4k", "", "6k", "", "8k" }; string[] XLabels = new string[9] { "250", "1k", "2k", ".", "4k", ".", "6k", ".", "8k" }; chartAudiogramBinaural.Data.ItemNames = XLabels; }
private void InitializeFittingCharts() { // set chart type chartLeft.ChartType = ChartType.LineSmoothed; //ChartType.LineSymbolsSmoothed; chartRight.ChartType = ChartType.LineSmoothed; //ChartType.LineSymbolsSmoothed;
// 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, DataYArea1, "area")); chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, DataYArea2, "area")); chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, DataYArea3, "area")); chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, DataYArea1, "area")); chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, DataYArea2, "area")); chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, DataYArea3, "area")); 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; i++) { DataYLoud[i] = randNum.Next(35); } chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, DataYLoud, "Loud")); chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, DataYLoud, "Loud")); //chartRight.Data.Children.Add(Function.CreateDataSeries(DataYLoud, "Loud"));
// Avg series for (int i = 0; i < DataYAvg.Length; i++) { DataYAvg[i] = randNum.Next(45); } chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, DataYAvg, "Avg")); chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, DataYAvg, "Avg")); //chartRight.Data.Children.Add(Function.CreateDataSeries(DataYAvg, "Avg"));
// Soft series for (int i = 0; i < DataYAvg.Length; i++) { DataYSoft[i] = randNum.Next(65); } chartLeft.Data.Children.Add(Function.CreateDataSeries(DataX, DataYSoft, "Soft")); chartRight.Data.Children.Add(Function.CreateDataSeries(DataX, DataYSoft, "Soft")); //chartRight.Data.Children.Add(Function.CreateDataSeries(DataYSoft, "Soft"));
// 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; //chartLeft.Data.Children[0].SymbolMarker = Marker.DiagonalCross; //chartLeft.Data.Children[0].SymbolFill = Brushes.White; //chartLeft.Data.Children[0].SymbolStroke = Brushes.Blue; //chartLeft.Data.Children[0].ConnectionFill = Brushes.Blue; //chartRight.Data.Children[1].SymbolMarker = Marker.Dot; //chartRight.Data.Children[1].SymbolFill = Brushes.White; //chartRight.Data.Children[1].SymbolStroke = Brushes.Red; //chartRight.Data.Children[1].ConnectionFill = Brushes.Red; }
// 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); //chartLeft.View.AxisX.MajorGridStrokeDashes = null; chartRight.View.AxisX.MajorGridStroke = new SolidColorBrush(Colors.DarkGray); //chartRight.View.AxisX.MajorGridStrokeDashes = null;
// log base //chartLeft.View.AxisX.LogBase = 10; //chartRight.View.AxisX.LogBase = 10;
chartLeft.View.AxisY.MajorGridStroke = new SolidColorBrush(Colors.DarkGray); //chartLeft.View.AxisY.MajorGridStrokeDashes = null; chartRight.View.AxisY.MajorGridStroke = new SolidColorBrush(Colors.DarkGray); //chartRight.View.AxisY.MajorGridStrokeDashes = null; }
private void btnSelectFittingSide_Click(object sender, RoutedEventArgs e) { Thickness margin = new Thickness(); margin.Left = 5; margin.Top = 5; margin.Right = 5; margin.Bottom = 5; //brdAudioChartLeft.Margin = margin; //brdAudioChartRight.Margin = margin; 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, 132, 132, 132); // #FF848484; // Gray Thickness DefaultBrushSize = new Thickness(); DefaultBrushSize.Left = 2.0; DefaultBrushSize.Top = 2.0; DefaultBrushSize.Right = 2.0; DefaultBrushSize.Bottom = 2.0;
//chartLeft.BorderThickness = DefaultBrushSize; //chartRight.BorderThickness = DefaultBrushSize; brdAudioChartLeft.BorderThickness = DefaultBrushSize; brdAudioChartRight.BorderThickness = DefaultBrushSize;
if (sender == btnSelectLeftFitting) { //chartLeft.BorderBrush = Brushes.Blue; //chartRight.BorderBrush = DefaultBrush; //brdAudioChartLeft.BorderBrush = Brushes.Blue; //brdAudioChartRight.BorderBrush = DefaultBrush; brdAudioChartHeaderRight.Opacity = 0.5; //margin.Left = 45; //margin.Top = 45; //margin.Right = 45; //margin.Bottom = 45; ////brdAudioChartRight.Margin = margin; //chartRight.Margin = margin; chartRight.IsEnabled = false; chartRight.Opacity = 0.5; } else if (sender == btnSelectRightFitting) { //chartLeft.BorderBrush = DefaultBrush; //chartRight.BorderBrush = Brushes.Red; //brdAudioChartLeft.BorderBrush = DefaultBrush; //brdAudioChartRight.BorderBrush = Brushes.Red; brdAudioChartHeaderLeft.Opacity = 0.5; //margin.Left = 45; //margin.Top = 45; //margin.Right = 45; //margin.Bottom = 45; ////brdAudioChartLeft.Margin = margin; //chartLeft.Margin = margin; chartLeft.IsEnabled = false; chartLeft.Opacity = 0.5; } else { //chartLeft.BorderBrush = Brushes.Blue; //chartRight.BorderBrush = Brushes.Red; //brdAudioChartLeft.BorderBrush = Brushes.Blue; //brdAudioChartRight.BorderBrush = Brushes.Red; } }