首页 文章

如何按需加载XAML内容

提问于
浏览
0

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

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

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

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

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

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

谢谢您的帮助!

2 回答

  • 1

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

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

    几个好的链接:

    CodeProject

    CSharpCorner

  • 0

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

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

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

相关问题