Я долгое время занимался разработкой .Net, но я новичок в технологии WPF. Какова предполагаемая цель App.xaml? Кроме того, какой тип кода xaml вы обычно вкладываете в него? Похоже, что для простых приложений его можно игнорировать и оставить нетронутым. Это правда?
WPF: Что такое App.xaml Цель?
Ответ 1
Это правда. App.Xaml - это своего рода центральная отправная точка. Вы можете использовать его, или вы можете запустить свое первое окно (оно определено в app.xaml) вручную. Есть несколько событий времени жизни (например, запуск приложения).
Ответ 2
App.xaml
- это декларативная часть вашего кода (обычно создаваемая Visual Studio), расширяющая System.Windows.Application
. Например, Expression Blend может использовать App.xaml
для совместного использования ресурсного словаря или набора данных времени разработки со всем вашим приложением. И поскольку мы используем продукты Microsoft, независимо от того, что Expression Blend может делать автоматически, мы можем сделать это вручную в Visual Studio.
Теперь тангенс: Для меня, чтобы спросить о цели App.xaml
, нужно спросить о цели для System.Windows.Application
. Не стесняйтесь обвинять меня в изменении первоначального вопроса (позвольте цифровым зверским образом).
Вы не можете просто открыть System.Windows.Controls.Window
в любой Ассамблее, какой вам нравится... Крис Продал, скорее всего, расскажет мне об этом в своей книге. Я начал понимать цель System.Windows.Application
при использовании MEF и MVVM Light для отображения окон WPF в DLLs
(не EXEs
). Я получил такие ошибки:
The type 'System.Windows.Markup.IComponentConnector' is defined in an assembly that is not referenced.
или
The type 'System.Windows.Markup.IQueryAmbient' is defined in an assembly that is not referenced.
Вышеприведенная ошибка просто говорит о том, что Im пытается открыть окно WPF внутри DLL, а не EXE
. Затем, эта ошибка:
The component 'Songhay.Wpf.WordWalkingStick.Views.ClientView' does not have a resource identified by the URI '/Songhay.Wpf.WordWalkingStick;component/views/clientview.xaml'.
Это сводится к отсутствию объекта, который связывает WPF Window XAML с "кодом" WPF (экземпляр). Это средство связано с WPF EXEs
, а не с WPF DLLs
. Visual Studio автоматически генерирует класс WPF EXE под названием App.g.cs
(в вашей папке \obj\Debug
) с этим вызовом в нем: System.Windows.Application.LoadComponent(this, resourceLocater)
где resourceLocater
- сильно именованная переменная, содержащая System.Uri
, указывающую на XAML как ClientView.xaml
, упомянутых выше.
Im уверен, что у Криса Селса есть целая глава, написанная о том, как WPF зависит от System.Windows.Application
за свою жизнь. Это моя потеря (довольно буквально времени) за то, что вы не читали об этом.
Я показал себе что-то с этим unit test:
[STAThread]
[TestMethod]
public void ShouldOpenWindow()
{
Application app = new Application();
app.Run(new Window());
}
Невозможность обернуть новое окно в методе System.Windows.Application.Run()
вызовет ошибку из земли COM, о которой говорят: "Почему вы вытащили ковер из-под меня?"
Ответ 3
Для простых приложений это правда, его можно игнорировать. Основная цель App.xaml - хранить ресурсы (стиль, ручки, кисти и т.д.), Которые хотели бы получить доступ через все окна в вашем приложении.
Ответ 4
Сохранение ресурсов, которые используются во всем приложении.
Приложение является корнем логического дерева.
Ответ 5
Это похоже на Global.asax, если вы исходите из фона ASP.NET. Вы также можете использовать его для совместного использования ресурсов во всем приложении. Удобно для совместного использования ресурсов.
Ответ 6
App.xaml is a major part of wpf application.
It contains major four attributes
1.X:Class->used to connect you xaml and code-behind file(xaml.cs).
2.xmlns->To resolve wpf elements like canvas,stack panel(default one).
3.xmlns:x->To resolve XAML language definition.
4. StartupUri->To give start window when application is launching.
Ответ 7
++++++++
App.xaml - это декларативная отправная точка вашего приложения. визуальный Studio автоматически создаст его для вас, когда вы начнете новый WPF приложения, включая файл с кодом-кодом, который называется App.xaml.cs. Oни работают так же, как для окна, где два файла являются частичными классами, работая вместе, чтобы вы могли работать как в разметке (XAML), так и в Код-сзади.
App.xaml.cs расширяет класс Application, который является центральным классом в приложение WPF Windows..NET пойдет в этот класс для запуска и затем запустите нужное окно или страницу. Это также место для подписки на важные события приложений, как запуск приложения, необработанные исключения и т.д.
Одной из наиболее часто используемых функций файла App.xaml является определить глобальные ресурсы, которые можно использовать и получать доступ со всех сторон приложения, например, глобальные стили.
+++++++++ Источник: http://www.wpf-tutorial.com/wpf-application/working-with-app-xaml/