WPF:鼠标悬停时动画派生的控件内容?

时间:2013-03-19 15:59:10

标签: c# wpf animation

我有一个来自Button的控件:

public class ToolButton : Button
{
    static ToolButton() {}

    public ImageSource ImageSource
    {
        get { return (ImageSource)GetValue(ImageSourceProperty); }
        set { SetValue(ImageSourceProperty, value); }
    }

    public static readonly DependencyProperty ImageSourceProperty =
        DependencyProperty.Register("ImageSource", typeof(ImageSource), typeof(ToolButton), new UIPropertyMetadata(null));
}

和它的风格:

    <Style TargetType="{x:Type wordplay:ToolButton}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type wordplay:ToolButton}">
                    <StackPanel Height="Auto" Orientation="Horizontal" Margin="4">
                        <Image Source="{TemplateBinding ImageSource}" Stretch="UniformToFill" />
                        <TextBlock Text="{TemplateBinding Content}" HorizontalAlignment="Left" Foreground="{DynamicResource TaskButtonTextBrush}" FontWeight="Bold"  Margin="5,0,0,0" VerticalAlignment="Center" FontSize="12" />
                    </StackPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

现在我需要在鼠标悬停时设置TextBlock宽度的动画,因此当用户将鼠标悬停在只有图像的按钮时,将显示文本。如果用户将鼠标指针移开,则隐藏文本。我希望将其设置为样式,以便它适用于任何ToolButton。问题是 - 我不知道ToolButton的最终大小,所以我无法设置宽度动画。我怎样才能做到这一点?

0 个答案:

没有答案