从控件模板引用时,设计器找不到外部xaml资源

时间:2015-03-18 09:42:32

标签: c# wpf visual-studio

我有外部库libccc,其自己的资源定义如下:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:ccc="clr-namespace:libccc"
    >
    <ccc:BooleanToHiddenVisibilityConverter x:Key="BooleanToHiddenVisibilityConverter" />
</ResourceDictionary>

在我的主项目中,我使用主app.xaml中的ResourceDictionary.MergedDictionaries包含它:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/libccc;component/Resources/Converters.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

现在我的问题是,当我仅从控制模板引用该资源时

<window style="{StaticResource MyDialog}">

</window>

在应用程序中定义样式,如下所示:

<ResourceDictionary>
    <Style x:Key="MyDialog" TargetType="{x:Type Window}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Window}">
                <Grid>
                    <Label HorizontalAlignment="Center" Content="{Binding UpdateResultDescription}" Visibility="{Binding UpdateEnded, Converter={StaticResource BooleanToHiddenVisibilityConverter}, FallbackValue=Hidden}" />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

</ResourceDictionary

VisualStudio Designer抛出异常:

  

异常:找不到名为'BooleanToHiddenVisibilityConverter'的资源。资源名称区分大小写。

我的应用程序按预期工作,但设计器抛出异常。当我在不使用控件模板的其他窗口中引用我的libccc时,设计器工作正常。

任何人都可以给我一个暗示,我可以改变什么来让设计师工作?

0 个答案:

没有答案