9

在我的 App.xaml 代码中,我有以下代码:

<Application x:Class="PcgTools.App"
    ...
    <Application.Resources>
        <ResourceDictionary>
             ...
            <res:Strings x:FactoryMethod="res:StringResourceHelper.GetStringResources" 
             x:Key="LocStrings"/>
        </ResourceDictionary> 
    </Application.Resources>
</Application>

在使用 FactoryMethod 或 Attribute 构造之前,我从 VS2012 编译器得到一个错误。但现在我得到了错误:这里不允许使用 Xaml2009 语言构造。

如何解决这个问题?

4

2 回答 2

19

不幸的是,由于缺乏编译器支持,XAML 2009 毫无用处(尽管 VS 出于某些愚蠢的原因识别它)。

请参阅: 关于 XAML 2009 的 MSDN 文档

基本上没有当前的编译器(WPF、SL、WinRT)实际上支持它。据我所知,唯一支持 XAML 2009 的是“loose xaml”,其中您有一个由浏览器直接打开的独立 xaml 文件(基本上没用)。

我不知道微软有什么解释说明为什么它不被支持。:-(

于 2013-01-16T04:33:09.043 回答
11

XAML 2009 不允许在已编译的 XAML 中使用(至少在 WPF 4.0 中不允许),请尝试将使用 2009 构造的内容移动到单独的资源字典文件中。

于 2013-01-15T22:40:48.617 回答