如何将ResourceDictionary设置为ContentControl.所容纳之物



在我的应用程序中,我有一个ContentControl,这显示了使用DataTemplatesContent属性。

现在,我需要将这个DictionaryResource传递给content属性。所以我做了这个(我不确定)

        <ContentControl Content="{Binding CurrentViewModel">
            <ContentControl.Resources>
                <ResourceDictionary Source="/MathematicsBusiness.Infrastructure;component/Resources/ThemeResources.xaml" />
            </ContentControl.Resources>
        </ContentControl>

这里面有我的字典:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style TargetType="TextBlock">
        <Setter Property="FontSize" Value="40" />
        <Setter Property="FontFamily" Value="Georgia" />
    </Style>
    <!--<Style x:Key="TextBlockStyle" TargetType="TextBlock">
        <Setter Property="FontSize" Value="40" />
        <Setter Property="FontFamily" Value="Georgia" />
    </Style>-->
</ResourceDictionary>

它是有效的,所有的数据模板都显示具有该样式的文本块。但是如果我使用评论的风格,它是不起作用的。它给了我一个错误:

找不到具有名称/密钥TextBlockStyle 的资源

为什么会这样?如果样式没有关键点,则可以使用。但如果我设置了一个键,它就不起作用。

如果您在不使用键的情况下指定了键,那么应该不会有问题。我的猜测是,您正在其他地方调用TextBlockStyle(可能是您的视觉状态或代码)。

如果您试图使用密钥,但尚未在xaml中指定,则通常会发生错误。

其他可能的原因是您试图使用ContentControl之外的密钥。

相关内容

  • 没有找到相关文章

最新更新