从自身访问UserControl的资源

时间:2013-06-01 13:46:12

标签: wpf user-controls wpf-controls resourcedictionary

是否可以从UserControl访问自己定义的资源?怎么样?

我正在尝试这样做:

<UserControl xmlns="all defined namespaces here..."
             Visibility="{Binding Show,FallbackValue=Hidden,
                 Converter={StaticResource BooleanToVisibility}}">
    <UserControl.Resources>
        <ResourceDictionary>
            <BooleanToVisibilityConverter x:Key="BooleanToVisibility" />
        </ResourceDictionary>
    </UserControl.Resources>
</UserControl>

,但是我收到了这个错误:

  

'为'System.Windows.StaticResourceExtension'提供一个值   例外。'行号“11”和行位置“9”。

1 个答案:

答案 0 :(得分:3)

可能会改变顺序:

<UserControl.Resources>
    <ResourceDictionary>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibility" />
    </ResourceDictionary>
</UserControl.Resources>
<UserControl.Visibility>
    <Binding Path="Show" FallbackValue="Hidden"
             Converter="{StaticResource BooleanToVisibility}"/>
</UserControl.Visibility>

你也可以将转换器移动到Application.Resources,因为它常用于多个地方,然后可以在任何地方引用它。