首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2013-01-08 
WPF一个小问题,我菜鸟。来人解决下?怎样重写Canvas的OnRender事件,Canvas是一个窗体的子控件!名字叫canvas1

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");
            }
        }        
给分啊!

热点排行