如何按需加载XAML内容

时间:2015-11-29 23:51:44

标签: c# wpf xaml

我手上有一个具体的问题。

我正在构建一个应用程序,在当前版本中,我有一个主要的xaml Grid元素,所有其他“页面”也只是Grid元素,其可见性属性为“隐藏”。

我正在寻找一种优化这种方法的方法,我已经对页面进行了一些测试,但由于我对XAML和C#没有经验,所以我们并没有真正做到最好。

假设我们的<Window>主要为<Grid>,并且该网格内部是应用程序的主要内容,还有另一个<Grid>设置(就像现在一样)。 如何在用户按下“设置”按钮时加载“设置网格”的内容,并在用户关闭设置页面时将其卸载。

我曾考虑将其加载为一个页面,但我不希望用户从主要内容导航,而是将设置菜单作为叠加层。

是否有在现有XAML窗口内动态加载另一个XAML文件(带有设置元素)的解决方案?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

将您的On-Demand内容放在UserControl中,并根据需要加载UserControl。

UserControl1 ctrl = new UserControl1();            
Grid1.Children.Add(ctrl);

很少有好的链接:

CodeProject

CSharpCorner

答案 1 :(得分:0)

我不确定你想要完成什么,但要动态加载xaml尝试XamlReader类:

System.Windows.UIElement el =(System.Windows.UIElement)System.Windows.Markup.XamlReader.Load(xaml);

一般来说,当我想要一个隐藏的东西直到一个动作发生时,我会将它的可见性绑定到视图模型上的一个属性,一些动作会设置属性的值(并触发一个propertychangedevent),然后显示内容。 / p>