Подтвердить что ты не робот

WPF: Что такое App.xaml Цель?

Я долгое время занимался разработкой .Net, но я новичок в технологии WPF. Какова предполагаемая цель App.xaml? Кроме того, какой тип кода xaml вы обычно вкладываете в него? Похоже, что для простых приложений его можно игнорировать и оставить нетронутым. Это правда?

4b9b3361

Ответ 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/