WPF:什么是App.xaml的目的?

我已经完成了.Net开发一段时间,但我是新来的WPF技术。 App.xaml的预期目的是什么? 另外, 通常会把什么types的xaml代码放进去? 对于简单的应用程序来说,它似乎可以忽略不计。 这是真的?

这是真的。 App.Xaml是某种中央起点。 你可以使用它,或者你可以手动启动你的第一个窗口(在app.xaml中定义)。 那里有一些终身事件(如应用程序启动)。

App.xaml是代码的声明性部分(通常由Visual Studio生成)扩展System.Windows.Application 。 例如,Expression Blend可以使用App.xaml与整个应用程序共享资源字典或devise时数据集。 而且,由于我们使用的是Microsoft产品,无论Expression Blend如何自动执行,我们都可以在Visual Studio中手动完成。

现在切线:对于我来说,询问App.xaml的目的是询问System.Windows.Application的目的。 随意指责我改变原来的问题(让数字残酷地随之而来)。

你不能只在任何你喜欢的大会中打开一个System.Windows.Controls.Window … Chris Sells可能在他的书中告诉我这一点。 我开始理解使用MEF和MVVM Light在DLLs (不是EXEs )中显示WPF窗口时System.Windows.Application的用途。 我有这样的错误:

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.

上面的错误只是说我试图打开一个DLL里面的一个WPF窗口,而不是一个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会自动生成一个名为App.g.cs的WPF EXE类(在\obj\Debug文件夹中): System.Windows.Application.LoadComponent(this, resourceLocater)其中resourceLocater是一个命名错误的variables,包含一个System.Uri指向像上面提到的System.Uri的XAML。

我相信Chris Sells已经写了一整个篇章,讲述WPF如何依赖System.Windows.Application来实现它的生命。 这是我没有阅读的损失(几乎是时间)。

我已经用这个unit testing向我展示了一些东西:

 [STAThread] [TestMethod] public void ShouldOpenWindow() { Application app = new Application(); app.Run(new Window()); } 

没有在System.Windows.Application.Run()方法中包装一个新的窗口,将会从COM的土地上抛出一个错误:“你为什么把地毯从我的下面拉开?

对于简单的应用程序来说,这是事实,它可以被忽略。 App.xaml的主要目的是保存资源(样式,钢笔,画笔等),以便在应用程序中的所有窗口中都可用。

存储在整个应用程序中使用的资源。

应用程序是逻辑树的根。

这就像Global.asax,如果你来自ASP.NET的背景。 您也可以使用它来在整个应用程序中共享资源。 资源共享非常方便。

 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. 

++++++++

App.xaml是应用程序的声明性起点。 当您启动一个新的WPF应用程序时,Visual Studio会自动为您创build它,包括一个名为App.xaml.c的代码隐藏文件。 它们的工作方式类似于一个窗口,其中两个文件是部分类,一起工作,允许您在标记(XAML)和代码隐藏中工作。

App.xaml.cs扩展了Application类,它是WPF Windows应用程序中的中心类。 .NET将去这个类开始说明,然后从那里启动所需的窗口或页面。 这也是订阅重要应用程序事件的地方,例如应用程序启动,未处理的exception等等。

App.xaml文件最常用的function之一是定义全局资源,这些资源可以在整个应用程序中使用和访问,例如全局样式。

+++++++++资料来源: http : //www.wpf-tutorial.com/wpf-application/working-with-app-xaml/