我面临着只有在设计时才有XAML代码的需求。我已经找到了一个很好的解决方案,可以找到here。似乎有一些人对解决了here的XmlnsDefinitionAttribute的解析计时有问题。
在我的例子中,真正的问题是我不能编译我的代码,因为在名称空间xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"中找不到AlternateContent。我还没有找到任何关于这个命名空间的文档,而且看起来很奇怪,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>我的猜测是,我缺少一个程序集引用,但我还没有找到为AlternateContent指定包含程序集的文档。你知道怎样才能让this正常工作吗?
编辑:
这似乎是一个常见的VS问题,可以通过这个mc:Ignorable="d mc"来解决。这在我的例子中是行不通的,因为我需要在设计时包含资源,这些资源应该对VS-Designer可用:)
发布于 2018-04-04 21:07:28
这似乎是一个常见的VS问题,可以通过下面的代码来解决
mc:Ignorable="d mc"这必须添加到视图的根元素中。
注意:根元素中应该已经有了mc:Ignorable="d",所以只需向其添加mc即可。
https://stackoverflow.com/questions/43362985
复制相似问题