Я пытаюсь анимировать цвет кисти для фона пользовательского класса, который наследуется от Border
. Я пробовал ссылку MSDN здесь:
http://msdn.microsoft.com/en-us/library/system.windows.media.animation.coloranimation.aspx
Это не совсем то, что я ищу, но может привести меня к точке без ошибок, но все равно ничего не анимируется. Проблема с примером в том, что они определяют логику внутри класса, который не является прямоугольником. Я пытаюсь определить изнутри прямоугольника (фактически границы).
Ниже приведен мой код, который я попытался экстраполировать из MSDN для моей ситуации.
public class PrettyButton : System.Windows.Controls.Border
{
private System.Windows.Media.SolidColorBrush hoverColor = new System.Windows.Media.SolidColorBrush();
private System.Windows.Media.SolidColorBrush origColor = new System.Windows.Media.SolidColorBrush();
private System.Windows.Media.Animation.Storyboard story = new System.Windows.Media.Animation.Storyboard();
public PrettyButton()
{
hoverColor.Color = System.Windows.Media.Color.FromArgb(255, 50, 200, 0);
origColor.Color = System.Windows.Media.Color.FromArgb(0, 0, 0, 0);
this.MouseEnter += PrettyButton_MouseEnter;
this.MouseLeave += PrettyButton_MouseLeave;
//Animate in logic
System.Windows.Media.Animation.ColorAnimation color = new System.Windows.Media.Animation.ColorAnimation(hoverColor.Color, System.TimeSpan.FromMilliseconds(400));
System.Windows.Media.Animation.Storyboard.SetTargetProperty(color, new System.Windows.PropertyPath(System.Windows.Media.SolidColorBrush.ColorProperty));
story.Children.Add(color);
}
а ниже в mouseEvent у меня есть
void PrettyButton_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
story.Begin(this);
}
К сожалению, я больше не получаю ошибок, поэтому след для меня остыл. Я также уверен, что мог бы найти 10 решений в XAML, но я хотел бы, чтобы этот класс можно было использовать повторно в будущем, и переопределение этой логики не идеально.