Border
에서 상속 된 사용자 지정 클래스의 배경에 브러시 색상을 애니메이션으로 적용하려고합니다.WPF 테두리 배경색 애니메이션
http://msdn.microsoft.com/en-us/library/system.windows.media.animation.coloranimation.aspx
이 정확히 내가 무엇을 찾고 아니라, 오류없이 포인트에 저를 얻을 수 있지만, 여전히 아무것도 애니메이션되지 않은 : 나는 여기 MSDN 링크를 시도했습니다. 이 예제의 문제점은 직사각형이 아닌 클래스 내에서 논리를 정의한다는 것입니다. 사각형 (실제로는 테두리) 내에서 정의하려고합니다.
다음은 내 상황을 MSDN에서 추정하려고 시도한 코드입니다. MouseEvent입니다에서
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);
}
아래 나는 흔적 나를 위해 차가운왔다 있도록
void PrettyButton_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
story.Begin(this);
}
불행하게도, 나는 더 이상 오류를받지 못했습니다 있습니다. 또한 XAML에서 10 가지 솔루션을 찾을 수 있다고 확신하지만 앞으로이 클래스를 재사용 할 수 있기를 바랍니다.이 논리를 재정의하는 것이 이상적이지는 않습니다.
이것은 mouseEnter에 InvalidOperationException' '를 발생한다. 'BorderBrush'는'DeependancyObject' 경로 ('Border.BorderBrush)를 가리 키지 않습니다. (SolidColorBrush.Color)' –
this.BorderBrush = new SolidColorBrush (origColor.Color); 이 라인을 생성자에 넣으십시오 ... –
이것은 오류는 수정하지만 애니메이션은 수정하지 않습니다. –