【问题标题】:WPF: How to apply a simple animation to a Label?WPF:如何将简单的动画应用于标签?
【发布时间】:2011-03-17 21:09:39
【问题描述】:

我有一个标签,里面有一张图片。我想应用一个简单的动画:在标签加载后(或何时可见或其他)更改 opacity 属性以实现淡入效果

但这不起作用:

<Label ContentTemplate="{DynamicResource ImageLabelDataTemplate}"  Canvas.Left="36" Canvas.Top="394" Height="116" Name="PreviousVirtualButton" Width="100" Visibility="Hidden">
                <Label.Style>
                    <Style TargetType="Label">
                        <Style.Triggers>
                            <Trigger Property="IsVisible" Value="True">
                                <Trigger.EnterActions>
                                    <BeginStoryboard>
                                        <Storyboard TargetProperty="Opacity">
                                            <DoubleAnimation  Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:5" />
                                        </Storyboard>
                                    </BeginStoryboard>
                                </Trigger.EnterActions>
                            </Trigger>                            
                        </Style.Triggers>
                        </Style>
                </Label.Style>
            </Label>

我想看看标签是如何在屏幕上淡出的。

提前致谢。

【问题讨论】:

  • 您可能应该开始接受一些问题的答案。它为您的声誉提供积分,也为其他人回答您的问题提供更多动力,因为如果您接受他们的回答,他们也会获得积分。 =)
  • 如果能解决您的问题,请接受回复作为答案。它也鼓励其他人回答。

标签: wpf animation triggers label


【解决方案1】:

试试这个:

<Window x:Class="WpfApplicationUnleashed.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window2" Width="200" MinWidth="200" MaxWidth="300" MaxHeight="120" MinHeight="120" Height="120">
    <Grid>
        <Label Canvas.Left="36" Content="HELLO" Canvas.Top="394" Height="116" Name="PreviousVirtualButton" Width="100">
            <Label.Style>
                <Style TargetType="Label">
                    <Style.Triggers>
                        <EventTrigger RoutedEvent="Label.Loaded">
                            <EventTrigger.Actions>
                                <BeginStoryboard>
                                    <Storyboard TargetProperty="Opacity">
                                        <DoubleAnimation  Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:5" />
                                    </Storyboard>
                                </BeginStoryboard>
                            </EventTrigger.Actions>
                        </EventTrigger>
                    </Style.Triggers>
                </Style>
            </Label.Style>
        </Label>
    </Grid>
</Window>

【讨论】:

    【解决方案2】:

    如果您删除Visibility="Hidden",它将起作用(假设您希望它在加载时淡入)。否则,当您希望它开始淡入时,将代码隐藏中的 Visibility 设置为 Visibility.Visible。另外,请确保在 ContentTemplate 中有可见的内容。

    【讨论】:

      【解决方案3】:

      您是否在代码中的某个地方设置了可见的标签?您必须将其设置为可见才能触发动画。

      C# 示例:

      previousVirtualButton.Visibility = System.Windows.Visibility.Visible;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-20
        • 1970-01-01
        • 1970-01-01
        • 2010-12-03
        • 1970-01-01
        相关资源
        最近更新 更多