【问题标题】:Set Dependency Property Value in Event Trigger of XAML?在 XAML 的事件触发器中设置依赖属性值?
【发布时间】:2016-04-04 02:12:11
【问题描述】:

我正在尝试为事件触发器中的依赖属性之一设置值。在 Styles 中无法实现这一点。

代码中的以下样式适用于我的 DataGridCell,因此当 DataGridCell 上发生某些 Drop 事件时,我想将属性值设置为 True 以获取依赖属性“dragdrop:DragDropHelper.HighlightColumn ”。

我需要像下面这样的东西。

<Style x:Key="GridCellStyle" TargetType="DataGridCell">
    <Setter Property="FontFamily" Value="Verdana"></Setter>                    
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="Beige"></Setter>
            <Setter Property="Foreground" Value="Black"></Setter>
        </Trigger>
        <EventTrigger RoutedEvent="Drop">
            <Setter Property="dragdrop:DragDropHelper.HighlightColumn" Value="True"></Setter>
        </EventTrigger>
    </Style.Triggers>
</Style>

【问题讨论】:

    标签: c# wpf xaml wpf-controls dependency-properties


    【解决方案1】:

    您不能将 Setter 添加到 EventTrigger。使用适当的BeginStoryboard 操作,如下所示:

    <EventTrigger RoutedEvent="Drop">
        <BeginStoryboard>
            <Storyboard>
                <BooleanAnimationUsingKeyFrames
                    Storyboard.TargetProperty="(dragdrop:DragDropHelper.HighlightColumn)">
                    <DiscreteBooleanKeyFrame KeyTime="0:0:0" Value="True"/>
                </BooleanAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
    

    【讨论】:

    • 我已经尝试过上述方法。但出现异常..“无法解析属性路径 'dragdrop:DragDropHelper.HighlightColumn' 中的所有属性引用。验证适用的对象是否支持这些属性。”
    • 你试过 Storyboard.TargetProperty="HighlightColumn" 吗?
    • 忘记将属性名称放在括号中,这是property paths for animation targets中附加属性所必需的。
    猜你喜欢
    • 2019-12-21
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 2011-08-04
    相关资源
    最近更新 更多