WPF TextBox在鼠标悬停时重复绘制多次
WPF TextBox在鼠标悬停时多次重绘的原因是因为WPF只会更新发生变化的区域(使用保留模式图形)。这是使用保留模式图形的最大好处之一,WPF可以有效地优化应用程序中需要重新绘制的部分。即使你有一个具有不同透明度级别的复杂场景,通常也不需要编写特定的代码来优化重绘。
在这种情况下的问题是,窗口的活动主题被应用到控件上。当你将鼠标移动到按钮上时,你会看到按钮稍微变成了一个“浅蓝色透明”的颜色(这取决于你的活动Windows主题)。同时,当你对按钮进行焦点操作时,另一种“动画”类型的行为也会应用到按钮上。你可以通过检查脏区域来清楚地看到这一点。
如果你想改变这个行为,你需要定义自己的主题,覆盖默认的主题行为。下面是一个可以帮助你入门的帖子:链接。
解决方法是定义自己的主题,覆盖默认的主题行为。具体可以参考上面提到的链接。