WPF中控件重绘的问题
最近开发WPF程序时 发现在拖动的时候闪烁比较严重,程序的背景是一副1280*720的图片,然后自绘了一个Canvas,界面采用Grid布局,其中有两个问题困扰了我:
1:界面闪烁问题,所以请教一下WPF中的双缓冲实现。
2:Grid中的自绘控件在窗口大小发生改变之后,并未重绘,而是停留在原来的位置。代码如下:
meter = new Meter();
grid.Children.Add(meter);
meter.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
meter.VerticalAlignment = System.Windows.VerticalAlignment.Center;
Grid.SetColumn(meter, 16);
Grid.SetRow(meter, 5);
如果改变一下代码,将
meter.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
meter.VerticalAlignment = System.Windows.VerticalAlignment.Center;
去掉,则控件可以在正确位置上重绘。
于是,想请教一下:
1: WPF中有没有类似于MFC中的OnPaint消息,invalid函数,如何监听窗口大小发生改变的事件。
2: 如何避免界面闪烁。
谢谢
------解决方案--------------------
那你的重绘是怎么触发的
就是 onRender方法
和InvalidaVisual方法吧
我这2天在写一个自定义控件,没遇到你的问题