是否可以将启动表单设置为静态字符串值?

时间:2011-01-25 09:45:08

标签: wpf xaml startup static-members

我们知道,我们可以通过将属性StartupUri设置为以下代码来指定要启动的视图。

<Application x:Class="SomeClass"
             xmlns  ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

             StartupUri="MainWindow.xaml"
             >
</Application>

我的问题:我们可以为视图名称输入静态字符串值,即。 MainWindow.xaml

我尝试了下面的代码,但它不起作用。如果你知道如何,请分享。谢谢!

<Application x:Class="Demo.WPFSkill.App"
             xmlns  ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

             xmlns:local="clr-namespace:MyPublicStaticClassNamespace"

             StartupUri="{x:Static Member=local:MyPublicStaticClass.AStaticValue}"
             >
</Application>

修改 我的目的:输入正确的名称以不依赖于字符串值的方式启动应用程序。

感谢mzabsky,我认为我最好在后面的代码中编写代码。

public partial class App : Application
{
    public App()
    {
        var mainWindow = new MainWindow();
        mainWindow.Show();
    }
}

希望这有用!

1 个答案:

答案 0 :(得分:2)

您可以从XAML中删除StartupUri参数,并从C#代码中的App类手动打开窗口。

编辑:

示例(假设静态值是主窗口类的类型名称):

public partial class App : Application
{
    public App()
    {
         Window window = (Window) Activator.CreateInstance(Assembly.GetExecutingAssembly.GetType(MyPublicStaticClass.AStaticValue));
         window.Show();
    }
}