标签: componentresourcekey

WPF StaticResource工作,DynamicResource不工作

我一直在尝试一天,无济于事,在主题中创建一堆画笔,然后在自定义控件中使用DynamicResource.我做的是这样的:

  • 创建包含样式(作品)的主题generic.xaml
  • 添加字典以在generic.xaml中合并以包含应用程序中使用的画笔(作品)
  • make brush具有ComponentResourceKey键(有效)
  • 使用画笔作为静态资源(作品)
  • 使控制使用画笔作为动态资源(不要工作,资源跟踪源说同样多:System.Windows.ResourceDictionary警告:9:找不到资源;)
  • 使用相同的键动态地在App.Resources中添加一个画笔(与动态资源一起使用,它会改变颜色,不能像预期的那样使用静态资源)

所以我的问题是我找不到任何方法来定义主题中的默认值,以便我可以在应用程序中以编程方式更改它们.StaticResource怎么能找到画笔和DynamicResource呢?!

我必须补充一点,我已经创建了一个静态类,将组件资源键作为属性保存在xaml中,例如{x:Static UI:ResourceScheme.ControlBackgroundKey}.我的问题似乎与此类似:ComponentResourceKey作为DynamicResource问题,如果我将静态属性键替换为组件资源键的XAML标记,它仍然不起作用.

有人可以帮帮我吗?:(

wpf xaml themes componentresourcekey dynamicresource

9
推荐指数
2
解决办法
8042
查看次数

已使用ComponentResourceKey添加了WPF ResourceDictionary项

我有以下ResourceDictionary,它被合并到我的Themes/Generic.xaml文件中

<DataTemplate DataType="{x:Type model:RequirementResourceRelation}" x:Key="{x:Static local:Resources.RequirementResourceRelationListTemplateKey}">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
        <TextBlock MinWidth="35" HorizontalAlignment="Left" Padding="3,0" Text="{Binding Resource.Name, TargetNullValue=Loading...}" />
        <TextBlock Grid.Column="1" Text="-" />
        <TextBlock Grid.Column="2" MinWidth="35" HorizontalAlignment="Left" Padding="3,0" Text="{Binding Path=RelationType, TargetNullValue=Loading...}" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" />
    </Grid>
</DataTemplate>

<DataTemplate DataType="{x:Type model:RequirementResourceRelation}" x:Key="{x:Static local:Resources.RequirementResourceRelationListTemplate2Key}">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
        <TextBlock MinWidth="35" HorizontalAlignment="Left" Padding="3,0" Text="{Binding Requirement.Name, TargetNullValue=Loading...}" />
        <TextBlock Grid.Column="1" Text="-" />
        <TextBlock Grid.Column="2" MinWidth="35" HorizontalAlignment="Left" Padding="3,0" Text="{Binding Path=RelationType, TargetNullValue=Loading...}" …
Run Code Online (Sandbox Code Playgroud)

wpf exception resourcedictionary componentresourcekey

5
推荐指数
2
解决办法
4145
查看次数