我在 WPF 应用程序中遇到了这个问题,当控件的属性发生更改时,它们不会在视觉上刷新!我正在使用 snoop,我可以看到该属性设置正确,但它不影响控件。我注意到,如果我更改大小,它会刷新并更正控件的外观。
此应用程序有多个页面(继承页面的控件),并且有导航栏可以导航到这些页面中的每一个。菜单中有一个选项可以让用户更改视觉属性(控件的“FlowDirection”),这会调用一个加载资源字典的方法,该字典将新样式应用于整个框架元素。我注意到,如果用户更改它(通过使用该菜单项),正在显示的页面中的所有控件都会刷新并且可以正常工作。但是当我们导航到其他页面时,一些控件会被刷新,而其中一些不会!(正如我之前提到的,我使用了 snoop,它显示为所有其他页面中的控件属性设置了正确的值,如果我调整页面大小,它们会进入正确的位置)
我尝试了 InvalidateVisual 、 InvalidateArrange 、 InvalidateMeasure ,但它们都没有帮助。
代码在 WPF C#、.NET 4.0 中
有什么建议吗?