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