我有一个数据网格,当我改变行数据并满足某些条件时,我试图模糊和淡入文本。除了在动画中添加模糊文本并使用动画将其聚焦(因为文本不透明度也会淡入)之外,我已经完成了所有工作。
我目前得到的错误是"无法解析属性路径中的所有属性引用' Effect.BlurEffect'。验证适用的对象是否支持属性。"。如果我删除动画部分,模糊按预期工作 - 我想我只需要知道如何正确引用效果,这样我就可以为它设置动画。
它的工作方式是这样的:我的列中有一个staticResource设置当一个数据触发条件满足不可见列中的值(命名为:已更改)时设置动画。
我现在已经完成了大约4个小时的搜索工作而没有找到任何文档,甚至没有任何使用数据触发器执行此操作的示例。任何援助都将非常感激。下面是我的XAML的一个例子
<DataGrid x:Name="dgDisplay" AutoGenerateColumns="false" ColumnHeaderStyle="{StaticResource headersVisible}" AlternatingRowBackground="Lightblue" AlternationCount="2" GridLinesVisibility="None" >
<DataGrid.Resources>
<Style TargetType="DataGridCell" x:Key="cellHighlight">
<Style.Triggers>
<DataTrigger
Binding="{Binding changed}" Value="S">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="10" KernelType="Gaussian" x:Name="blur"/>
</Setter.Value>
</Setter>
<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.TargetProperty="Effect.BlurEffect"
From="10" To="0" Duration="00:00:1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</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>
&#13;
答案 0 :(得分:1)
试试这个:
<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>