Можно ли задать форму запуска для статического строкового значения? - PullRequest
2 голосов
/ 25 января 2011

Как мы знаем, мы можем указать, какое представление запустить, установив свойство 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 Ответ

2 голосов
/ 25 января 2011

Вы можете удалить параметр StartupUri из XAML и открыть окно вручную из класса App из кода C #.

EDIT:

Пример (предполагается, что статическое значение является именем типа класса основного окна):

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