Как установить свойство запуска URI в другое окно в папке в проекте wpf

В моем проекте wpf я создал папку с именем Practice, в эту папку я добавил окно, теперь я хочу запустить это окно, поэтому в файле app.xaml я установил в качестве имени для запуска foldername.window.xaml, но он говорит, что build Для свойства action не установлено значение resource.

для этого я установил свойство build action для ресурса. Теперь, когда он показывает сообщение об ошибке, инициализированный компонент не существует в текущем контексте.

Можете ли вы сказать мне, какие свойства нам нужно установить, когда мы создаем отдельные папки в проекте wpf, и эти папки содержат окна или страницы. и Как получить доступ к этим страницам на других страницах или в свойстве запуска файла App.Xaml.

2 ответа

Если в структуре вашего проекта есть папки, вы должны использовать "/", а не ".", Так что это foldername/window.xaml,

(Я надеюсь, что это на самом деле не называется window.xaml Кстати. Это непонятное имя для типа в проекте WPF, потому что есть встроенный тип, называемый Window.)

Установка действия по сборке на Resource усугубит ситуацию: вы не только использовали неправильное имя, но теперь изменили действие по сборке на неправильное для XAML. Правильное действие для сборки .xaml файл обычно Page, (App.xaml является исключением из этого правила.) Page действие build заставляет страницу быть скомпилированной в двоичное представление (известное как BAML), и этот двоичный формат может быть загружен либо с помощью вызова InitializeComponent в коде позади или через Application.LoadComponent,

Установка действия по сборке для Resource просто вставит копию исходного кода XAML непосредственно в проект, что вам не поможет - вы не можете работать с XAML в этой форме, если вы хотите иметь файл codebehind. (Во всяком случае, не в WPF. Он отличается от других основанных на XAML сред, таких как WinRT.)

Так как Page является действием по умолчанию для вновь добавленного окна, вам вообще не нужно устанавливать какие-либо свойства. Вам просто нужно использовать / для границ папки.

Если XAML находится внутри какой-либо папки, URL-адрес запуска будет определен, как показано ниже.

Вот как это будет определено.

Другие вопросы по тегам