使用c#/ wpf编写一个相当简单的应用程序。
打开第二个窗口时,会短暂闪烁或闪烁。
广泛的Google搜索表明,这是由屏幕重新绘制引起的,因此我对此无能为力。
(我没有包含任何代码,因为似乎这个问题众所周知,并且大多数人都“学会与之共处”)
所以,我想,为什么不将所有XAML放在一个文件中,并且每个页面都放在自己的网格中,我可以使用visible.visible或visible.collapsed等隐藏/显示。
效果很好(除了非常小的延迟-不到1/2秒-第一次显示第二个窗口网格),但我对将所有代码包含在单个页面中的想法感到不满意。 (对于它的价值,我被告知编译器无论如何都将其视为一个文件,但是...)
有没有一种方法可以为每个“窗口”(实际上是XAML网格)功能创建单独的“文件背后的代码”,同时将它们都链接到同一Xaml文件?
(键入该命令后,答案很明显,我应该已经知道了……)
感谢
答案 0 :(得分:0)
如果我对您的理解正确,那么您只需要为每个“窗口网格”创建一个新的“控制类代码背后”对。在VS中,可以通过在解决方案资源管理器中单击“添加-创建元素-用户控件”(名称为UserControl1.xaml
,将其重命名为YourControl.xaml
之类)来完成此操作(我想您已经知道所有这些,但以防万一)。
现在,如果对于Grid类型的控件没有特定的要求,则可以按原样使用它:
<MainWindow>
<Grid>
<YourControlNumberOne />
<YourControlNumberTwo />
<YourControlNumberThree />
<Grid/>
</MainWindow>
如果您特别需要基于Grid
的控件,只需将YourControl
的基类更改为Grid
,然后将关联的XAML文件中最顶层的XAML元素更改为{{1} }。