Как кодировать анимацию поворотного типа в текстовом поле в C # без использования разметки - PullRequest
0 голосов
/ 29 марта 2012

Я видел пример того, как создать эффект свечения, когда изображение получает фокус в разметке.Ниже приведен пример кода C #, в котором используется двойная анимация для прозрачности прямоугольника. Мне нужно выполнить эффект свечения или поворота, используя C #, а не разметку, поскольку мне это неудобно.

        DoubleAnimation myDoubleAnimation = new DoubleAnimation();
        myDoubleAnimation.From = 1.0;
        myDoubleAnimation.To = 0.0;
        myDoubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(5));
        myDoubleAnimation.AutoReverse = true;
        myDoubleAnimation.RepeatBehavior = RepeatBehavior.Forever;

        myStoryboard = new Storyboard();
        myStoryboard.Children.Add(myDoubleAnimation);
        Storyboard.SetTargetName(myDoubleAnimation, myRectangle.Name);
        Storyboard.SetTargetProperty(myDoubleAnimation, new PropertyPath(Rectangle.OpacityProperty));

1 Ответ

0 голосов
/ 30 марта 2012

Вы можете добавить это в свой Main () после InitializeComponent ();

textBlock1.Text = "Mouse over me";

var effect = new DropShadowEffect();
effect.Color = Colors.Red;
effect.BlurRadius = 10d;
effect.Opacity = 0d;
effect.ShadowDepth = 0d;
textBlock1.Effect = effect;

textBlock1.MouseEnter += (s, e) => {
    var anim = new DoubleAnimation(0d, 1d, new Duration(TimeSpan.FromMilliseconds(500)));
    effect.BeginAnimation(DropShadowEffect.OpacityProperty, anim); };

textBlock1.MouseLeave += (s, e) => {
    var anim = new DoubleAnimation(1d, 0d, new Duration(TimeSpan.FromMilliseconds(500)));
    effect.BeginAnimation(DropShadowEffect.OpacityProperty, anim); };

Но я бы рекомендовал прекратить тратить время на C # для кода GUI, XAML намного удобнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...