首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以检查数据访问器中动态资源的值吗?

我可以检查数据访问器中动态资源的值吗?
EN

Stack Overflow用户
提问于 2013-03-20 11:58:35
回答 1查看 1.3K关注 0票数 1

我希望根据动态资源的值切换控件样式。

代码语言:javascript
复制
<Image x:Name="leftImg" Stretch="Fill" Style="{StaticResource BookendImageStyle}" >
    <Image.Triggers>
        <DataTrigger Binding="{DynamicResource BlackAndWhite}" Value="True">
            <Setter TargetName="leftImg" Property="Style" Value="{StaticResource BookendImageStyleBW}" />
        </DataTrigger>
    </Image.Triggers>
</Image>

这编译得很好,但是在运行时我得到了以下异常:

代码语言:javascript
复制
A 'DynamicResourceExtension' cannot be set on the 'Binding' property of type 'DataTrigger'. A 'DynamicResourceExtension' can only be set on a DependencyProperty of a DependencyObject.

我想做什么是可能的吗?我只是语法不对吗?我应该换一种方式吗?

编辑我已将代码更改为:

代码语言:javascript
复制
<DataTemplate x:Key="ViasTemplate">
                    <StackPanel Orientation="Horizontal">
                        <Border Padding="{Binding ElementName=templateTest, Path=DataContext.GridRow.LeftBondIndent}" Width="50">
                            <Image x:Name="leftImg" Stretch="Fill" Style="{StaticResource BookendImageStyle}" >
                                <Image.Triggers>
                                    <DataTrigger Binding="{Binding Source={StaticResource BlackAndWhite}}" Value="True">
                                        <Setter TargetName="leftImg" Property="Style" Value="{StaticResource BookendImageStyleBW}" />
                                    </DataTrigger>
                                </Image.Triggers>
                            </Image>

但现在有个例外:

代码语言:javascript
复制
Triggers collection members must be of type EventTrigger

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-03-20 13:31:55

代码语言:javascript
复制
  <Image x:Name="leftImg" Stretch="Fill" Style="{StaticResource BookendImageStyle}" >
        <Image.Triggers>
            <DataTrigger Binding="{Binding Source={DynamicResource BlackAndWhite}}" Value="True">
                <Setter TargetName="leftImg" Property="Style" Value="{StaticResource BookendImageStyleBW}" />
            </DataTrigger>
        </Image.Triggers>
    </Image>

当然,您应该将此触发器移动到图像样式。DataTrigger只能在样式或模板中定义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15522896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档