当前位置: 代码迷 >> .NET组件控件 >> WPF一个小疑点,小弟我初学者。来人解决下
  详细解决方案

WPF一个小疑点,小弟我初学者。来人解决下

热度:3531   发布时间:2013-02-25 00:00:00.0
WPF一个小问题,我菜鸟。来人解决下?


怎样重写Canvas的OnRender事件,Canvas是一个窗体的子控件!

名字叫canvas1,重写后又如何调用!

------解决方案--------------------------------------------------------
重写后要在程序中调用cancas1.InvalidateVisual();
关于怎么重写给你个例子吧。
protected override void OnRender(System.Windows.Media.DrawingContext dc)
{
base.OnRender(dc);//
if (AnalyerGloablStatus.Instance.DicPoints != null)
{
// System.Diagnostics.Debug.WriteLine("{0}+{1}", DateTime.Now.Second.ToString() + ":" + DateTime.Now.Millisecond.ToString(), "begin");
for (int index = 0; index < AnalyerGloablStatus.Instance.DicPoints.Count - 1; index++)
{
//dc.DrawLine(new Pen(Brushes.Yellow, 1),
// new Point(AnalyerGloablStatus.Instance.DicPoints[index].PhyicPointX, AnalyerGloablStatus.Instance.DicPoints[index].PhyicPointY),
// new Point(AnalyerGloablStatus.Instance.DicPoints[index + 1].PhyicPointX, AnalyerGloablStatus.Instance.DicPoints[index + 1].PhyicPointY));
FreqencyPoint point1 = (FreqencyPoint)AnalyerGloablStatus.Instance.DicPoints[index];
FreqencyPoint point2 = (FreqencyPoint)AnalyerGloablStatus.Instance.DicPoints[index + 1];
dc.DrawLine(new Pen(Brushes.Yellow, 1),
new Point(point1.PhyicPointX, point1.PhyicPointY),
new Point(point2.PhyicPointX, point2.PhyicPointY));
}
// System.Diagnostics.Debug.WriteLine("{0}+{1}", DateTime.Now.Second.ToString() + ":" + DateTime.Now.Millisecond.ToString(), "end");
}
}
给分啊!
  相关解决方案