屏幕闪烁的解决方法

时间:2019-10-19 16:48:52

标签: c# wpf

使用c#/ wpf编写一个相当简单的应用程序。

打开第二个窗口时,会短暂闪烁或闪烁。

广泛的Google搜索表明,这是由屏幕重新绘制引起的,因此我对此无能为力。

(我没有包含任何代码,因为似乎这个问题众所周知,并且大多数人都“学会与之共处”)

所以,我想,为什么不将所有XAML放在一个文件中,并且每个页面都放在自己的网格中,我可以使用visible.visible或visible.collapsed等隐藏/显示。

效果很好(除了非常小的延迟-不到1/2秒-第一次显示第二个窗口网格),但我对将所有代码包含在单个页面中的想法感到不满意。 (对于它的价值,我被告知编译器无论如何都将其视为一个文件,但是...)

有没有一种方法可以为每个“窗口”(实际上是XAML网格)功能创建单独的“文件背后的代码”,同时将它们都链接到同一Xaml文件?

(键入该命令后,答案很明显,我应该已经知道了……)

感谢

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您只需要为每个“窗口网格”创建一个新的“控制类代码背后”对。在VS中,可以通过在解决方案资源管理器中单击“添加-创建元素-用户控件”(名称为UserControl1.xaml,将其重命名为YourControl.xaml之类)来完成此操作(我想您已经知道所有这些,但以防万一)。

现在,如果对于Grid类型的控件没有特定的要求,则可以按原样使用它:

<MainWindow>
   <Grid>
      <YourControlNumberOne />    
      <YourControlNumberTwo />    
      <YourControlNumberThree />    
   <Grid/>
</MainWindow>

如果您特别需要基于Grid的控件,只需将YourControl的基类更改为Grid,然后将关联的XAML文件中最顶层的XAML元素更改为{{1} }。

相关问题