WPF使用DataTrigger设置DataGridCell文本模糊效果动画

WPF使用DataTrigger设置DataGridCell文本模糊效果动画,wpf,xaml,animation,datagrid,storyboard,Wpf,Xaml,Animation,Datagrid,Storyboard,我有一个datagrid,当行数据发生变化并且满足某些条件时,我试图在文本中模糊和淡入。除了在动画中添加模糊文本并通过动画将其聚焦(因为文本不透明度也会逐渐消失)之外,我的一切都正常工作 我当前遇到的错误是“无法解析属性路径'Effect.BlurEffect'中的所有属性引用。请验证适用对象是否支持这些属性。”。如果我移除动画部分,模糊效果会像预期的那样工作-我想我只需要知道如何正确地引用效果,这样我就可以为它设置动画 其工作方式如下:我在列中设置了一个staticResource,当data

我有一个datagrid,当行数据发生变化并且满足某些条件时,我试图在文本中模糊和淡入。除了在动画中添加模糊文本并通过动画将其聚焦(因为文本不透明度也会逐渐消失)之外,我的一切都正常工作

我当前遇到的错误是“无法解析属性路径'Effect.BlurEffect'中的所有属性引用。请验证适用对象是否支持这些属性。”。如果我移除动画部分,模糊效果会像预期的那样工作-我想我只需要知道如何正确地引用效果,这样我就可以为它设置动画

其工作方式如下:我在列中设置了一个staticResource,当datatrigger条件与不可见列(名为:changed)中的值满足时,设置动画

我现在已经搜索了大约4个小时,没有找到任何文档,甚至没有找到任何使用datatrigger执行此操作的示例。任何帮助都将不胜感激。下面是我的XAML示例

试试这个:

    <DataGrid x:Name="dgDisplay" AutoGenerateColumns="false" ColumnHeaderStyle="{StaticResource headersVisible}" AlternatingRowBackground="Lightblue" AlternationCount="2" GridLinesVisibility="None" >
        <DataGrid.Resources>
            <Style TargetType="{x:Type DataGridCell}" x:Key="cellHighlight">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridCell}">
                            <Border>
                                <Border.Effect>
                                    <BlurEffect Radius="0" KernelType="Gaussian" x:Name="blurEffect"/>
                                </Border.Effect>
                                <ContentPresenter/>
                            </Border>
                            <ControlTemplate.Triggers>
                                <DataTrigger
                            Binding="{Binding changed}" Value="S">
                                    <DataTrigger.EnterActions>
                                        <BeginStoryboard>
                                            <Storyboard x:Name="FadeS" >
                                                <DoubleAnimation
                                            Storyboard.TargetProperty="(TextBlock.Opacity)"
                                            From="0.0" To="1.0" Duration="0:0:1" 
                                            AutoReverse="False"  />
                                                <DoubleAnimation Storyboard.TargetName="blurEffect" 
                                            Storyboard.TargetProperty="Radius"
                                            From="10" To="0" Duration="00:00:1" />
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </DataTrigger.EnterActions>
                                </DataTrigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGrid.Resources>
        <DataGrid.Columns>
            <DataGridTextColumn CellStyle="{StaticResource cellHighlight}" Header="Col1" Binding="{Binding Col1}" FontWeight="Bold" />
            <DataGridTextColumn Header="Col2" CellStyle="{StaticResource cellHighlight}" Binding="{Binding Col2}" />
        </DataGrid.Columns>
    </DataGrid>


我考虑了一下,将目标属性更改为BlurEffect.Radius-现在我没有抛出错误,但模糊没有设置动画。我尝试了(TextBlock)。(BlurEffect.Radius)和其他一些变体,但都只是为了得到一个错误。越来越近了……哇!谢谢-这很有效。controlTemplate显然允许您使用TargetName,这是我问题的一部分。再次感谢!