命名空间[...]

时间:2017-04-12 07:25:07

标签: c# wpf xaml xml-namespaces

我只需要在设计时使用XAML代码。我找到了一个很好的解决方案,可以找到here。似乎有一些人在XmlnsDefinitionAttribute的解析时间问题得到解决here

在我的情况下,问题是,我无法编译我的代码,因为AlternateContent在命名空间xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"中找不到。我确实没有找到任何关于这个命名空间的文档,看起来很奇怪,行mc:Ignorable="d"无法构建,这意味着我至少有一个包含上述命名空间的程序集。

这是我的代码:

#if DEBUG
[assembly: XmlnsDefinition("debug-mode", "MyNamespace")]
#endif

<Window x:Class="MyNamespace.SomeWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:debug="debug-mode"
        mc:Ignorable="d"
        ... >
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <mc:AlternateContent>
                    <mc:Choice Requires="debug">
                        <ResourceDictionary Source="pack://application:,,,/Styles;component/Generic.xaml" />
                    </mc:Choice>
                </mc:AlternateContent>
                ...
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    ...
</Window>

我的猜测是,我错过了一个Assembly-Reference,但我还没有找到一个指定包含AlternateContent程序集的文档。您对我this如何工作有什么想法吗?

编辑:

这似乎是一个常见的VS问题,可以通过mc:Ignorable="d mc"来解决。这在我的情况下不起作用,因为我需要在Design-Time中包含资源,这些资源应该可供VS-Designer使用:)

1 个答案:

答案 0 :(得分:1)

这似乎是一个常见的VS问题,可以通过此代码来解决

mc:Ignorable="d mc"

必须将其添加到视图的根元素中 注意:您的根元素中已经有mc:Ignorable="d",因此您只需添加mc即可。