我已经完成了.Net开发一段时间,但我是WPF技术的新手.App.xaml的假设目的是什么?另外,您通常会在其中添加什么类型的xaml代码?对于简单的应用程序来说,它似乎可以被忽略并保持不变.这是真的?
ras*_*asx 37
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
在任何你喜欢的大会中打开一个...... Chris Sells可能会在他的书中告诉我这一点.我开始理解System.Windows.Application
使用MEF和MVVM Light在DLLs
(不EXEs
)中显示WPF窗口的目的.我得到这样的错误:
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
(在您的\obj\Debug
文件夹中)的WPF EXE类,System.Windows.Application.LoadComponent(this, resourceLocater)
其中包含以下调用:where resourceLocater
是一个命名错误的变量,包含System.Uri
指向XAML的变量,ClientView.xaml
如上所述.
我相信克里斯·塞尔斯(Chris Sells)已经写了一整章关于WPF如何依赖System.Windows.Application
它的生活.没有阅读它是我的损失(非常简单的时间).
我通过这个单元测试向自己展示了一些东西:
[STAThread]
[TestMethod]
public void ShouldOpenWindow()
{
Application app = new Application();
app.Run(new Window());
}
Run Code Online (Sandbox Code Playgroud)
如果没有在System.Windows.Application.Run()
方法中包装一个新的窗口,将会引起COM的一个错误,那就是"为什么你从我下面拉地毯?"
小智 30
对于简单的应用程序,确实如此,它可以被忽略.App.xaml的主要目的是保存您希望在应用程序中的所有窗口中可用的资源(样式,笔,画笔等).
归档时间: |
|
查看次数: |
32927 次 |
最近记录: |