wpf - 如何对 LinearGradient 的 StartPoint 进行动画处理

标签 wpf animation lineargradientbrush

我有一个 LinearGradientBrush 用作 OpacityMask,我希望我的动画旋转渐变,因此我尝试为 StartPoint 和 EndPoint 的位置设置动画,但我无法让它工作几个小时:(

    <Style x:Key="NewContentStyle" TargetType="ContentPresenter">
        <Setter Property="OpacityMask">
            <Setter.Value>
                <LinearGradientBrush x:Name="FillGradient"  EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="Black" Offset="0.5"/>
                    <GradientStop Color="Transparent" Offset="1"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>

    <Storyboard x:Key="NewContentStoryboard">
        <PointAnimation Storyboard.TargetProperty="StartPoint" Storyboard.TargetName="FillGradient" From="0.5 0" To="0 0.5" Duration="00:00:1" />
        <PointAnimation Storyboard.TargetProperty="EndPoint" Storyboard.TargetName="FillGradient" From="1 0.5" To="0 0.5" Duration="00:00:1"/>
    </Storyboard>

我收到错误“在“System.Windows.Controls.ContentPresenter”的名称范围中找不到“FillGradient”名称。”

最佳答案

请尝试这个:

<Storyboard x:Key="NewContentStoryboard">
    <PointAnimation Storyboard.TargetProperty="OpacityMask.(LinearGradientBrush.StartPoint)" From="0.5 0" To="0 0.5" Duration="00:00:1" />
    <PointAnimation Storyboard.TargetProperty="OpacityMask.(LinearGradientBrush.EndPoint)" From="1 0.5" To="0 0.5" Duration="00:00:1"/>
</Storyboard>

关于wpf - 如何对 LinearGradient 的 StartPoint 进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6954767/

相关文章:

c# - 如何垂直翻转位图图像

c# - WPF 按钮内容绑定(bind)

javascript - HTML Canvas 和动画

windows-7 - 在 Windows 7 中显示关闭动画

c# - WPF ListViewItem 多个事件通过 AttachedCommandBehaviour

c# - 我觉得自己像个管道厂里的老鼠。设计 WPF 绑定(bind)解决方案的策略?

android - 动画部分图像

wpf - 在wpf中设置按钮背景样式

c# - 将不透明度应用于 LinearGradientBrush

c# - Json.net LinearGradientBrush序列化