如何切换在XBAP中使用的主显示XAML页面。唯一不同的是我想要一个更大的模式和一个更小的模式,但使用相同的控件(一些隐藏)。
答案 0 :(得分:1)
在App.xaml.cs文件中,您可以通过编程方式更改要在启动时显示的Window.xaml文件。这是一个过于简化的例子。
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
System.Windows.Window startupWindow = null;
if(useLargeMode)
{
startupWindow = new LargeMainWindow();
}
else
{
startupWindow = new SmallMainWindow();
}
window.Show();
}
您也可以通过更改App.xaml文件中的StartupUri来完成此操作,但显然在运行时更难以更改。
<Application x:Class="Main.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml" /> <!-- change this -->
我还没有尝试绑定到XAML中的应用程序声明中的属性,但VS 2010并没有抱怨这一点。我担心的是应用程序已经足够早地设置了datacontext,以使其正常工作。尝试一下,让我们知道它是如何工作的。 :)
<Application x:Class="Main.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="{Binding StartupWindow}">