WPF中控件重绘的问题

isawgba 2012-04-07 10:16:00
最近开发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: 如何避免界面闪烁。
谢谢
...全文
902 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
isawgba 2012-04-19
  • 打赏
  • 举报
回复
最后发现是WPF渲染冲突的问题,换用WPF自带的Drawing问题解决了,谢谢大家
avi9111 2012-04-15
  • 打赏
  • 举报
回复
那你的重绘是怎么触发的

就是 onRender方法

和InvalidaVisual方法吧

我这2天在写一个自定义控件,没遇到你的问题

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧