0

我有一个从 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 的最终大小,所以我无法为宽度设置动画。我怎样才能做到这一点?

4

0 回答 0