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/