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