//self event private void self_Loaded(object sender, RoutedEventArgs e) { parent = this.FindName("ControlContainer") as BasicWaveChartUC; xaxis = this.FindName("xaxis") as XAxisCtl; yaxis = this.FindName("yaxis") as YAxisCtl; moveslider = this.FindName("moveslider") as Slider; wincanvas = this.FindName("WindowCanvas") as Canvas; ; }
private static void YScaleMaxValue_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e) { YAxisCtl self = d as YAxisCtl; XAxisCtl xaxisctl = self.FindName("xaxis") as XAxisCtl; BasicWaveChartUC wavechartuc = self.FindName("ControlContainer") as BasicWaveChartUC; if (xaxisctl == null || wavechartuc == null) { return; } self.granulity_width = (self.Height - xaxisctl.Height - self.arrowheight - wavechartuc.TopBlankZone) / self.YScaleMaxValue; }
//redraw text command public void ReDrawTextCommentCmd() { Canvas xaxis_text_canvas = this.FindName("xaxis_text_canvas") as Canvas; BasicWaveChartUC wavechartuc = this.FindName("ControlContainer") as BasicWaveChartUC; XAxisCtl xaxis = this.FindName("xaxis") as XAxisCtl; YAxisCtl yaxis = this.FindName("yaxis") as YAxisCtl; //add the scale text xaxis_text_canvas.Children.Clear(); //0 xaxis_text_canvas.Children.Add(new TextBlock()); (xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock).Text = "0"; (xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock).FontSize = 8; Canvas.SetLeft((xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock), 0); Canvas.SetBottom((xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock), 0); if (xaxis.XScaleLineNumber == 0) { return; } int loop = (int)(wavechartuc.NumberOfDValue / xaxis.XScaleLineNumber / xaxis.XCommentNumber); for (int i = 1; i < loop; i++) { xaxis_text_canvas.Children.Add(new TextBlock()); (xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock).Text = (i * xaxis.XScaleLineNumber * xaxis.XCommentNumber).ToString(); (xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock).FontSize = 8; Canvas.SetLeft((xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock), (i * xaxis.XScaleLineNumber * xaxis.XCommentNumber) * xaxis.GetGranulity()); Canvas.SetBottom((xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock), 0); } //the text of last big scale xaxis_text_canvas.Children.Add(new TextBlock()); (xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock).Text = (loop * xaxis.XScaleLineNumber * xaxis.XCommentNumber).ToString(); (xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock).FontSize = 8; Canvas.SetLeft((xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock), (loop * xaxis.XScaleLineNumber * xaxis.XCommentNumber) * xaxis.GetGranulity()); Canvas.SetBottom((xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock), 0); //the max of dvalue xaxis_text_canvas.Children.Add(new TextBlock()); (xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock).Text = wavechartuc.NumberOfDValue.ToString(); //todo replace 1187 (xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock).FontSize = 8; Canvas.SetLeft((xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock), wavechartuc.NumberOfDValue * xaxis.GetGranulity()); Canvas.SetBottom((xaxis_text_canvas.Children[xaxis_text_canvas.Children.Count - 1] as TextBlock), 0); }
//redraw command public void ReDrawCmd() { Canvas yaxis_text_canvas = this.FindName("yaxis_text_canvas") as Canvas; YAxisCtl yaxis = this.FindName("yaxis") as YAxisCtl; XAxisCtl xaxis = this.FindName("xaxis") as XAxisCtl; //add the scale text yaxis_text_canvas.Children.Clear(); //0 yaxis_text_canvas.Children.Add(new TextBlock()); (yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock).Text = "0"; (yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock).FontSize = 8; Canvas.SetLeft((yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock), 0); Canvas.SetBottom((yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock), xaxis.Height); int loop = (int)(yaxis.YScaleMaxValue / yaxis.YScaleLineNumber / yaxis.YCommentNumber); for (int i = 1; i < loop; i++) { yaxis_text_canvas.Children.Add(new TextBlock()); (yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock).Text = (i * yaxis.YScaleLineNumber * yaxis.YCommentNumber).ToString(); (yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock).FontSize = 8; Canvas.SetLeft((yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock), 0); Canvas.SetBottom((yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock), xaxis.Height + i * yaxis.YScaleLineNumber * yaxis.YCommentNumber * yaxis.GetGranulity()); } //the text of last big scale yaxis_text_canvas.Children.Add(new TextBlock()); (yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock).Text = (loop * yaxis.YScaleLineNumber * yaxis.YCommentNumber).ToString(); (yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock).FontSize = 8; Canvas.SetLeft((yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock), 0); Canvas.SetBottom((yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock), xaxis.Height + loop * yaxis.YScaleLineNumber * yaxis.YCommentNumber * yaxis.GetGranulity()); //set the max value yaxis_text_canvas.Children.Add(new TextBlock()); (yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock).Text = yaxis.YScaleMaxValue.ToString(); (yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock).FontSize = 8; Canvas.SetLeft((yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock), 0); //Canvas.SetBottom((yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock), xaxis.Height + yaxis.YScaleMaxValue * yaxis.GetGranulity()-20); Canvas.SetBottom((yaxis_text_canvas.Children[yaxis_text_canvas.Children.Count - 1] as TextBlock), xaxis.Height + yaxis.YScaleMaxValue * yaxis.GetGranulity()); }