簡體   English   中英

將 animation 添加到我在代碼 c# wpf 中創建的橢圓中

[英]Adding animation to an ellipse that I've created in code c# wpf

我在代碼中創建了多個橢圓並添加了 MouseEnter 和 Leave 事件。 我的問題是,當我使用 cursor 進入橢圓時,它會改變整個 window 的不透明度,而不僅僅是那個橢圓。

在這里,我創建了橢圓:

        for (int i = 0; i < L2.Count; i++)
        {
            Ellipse myEllipse = new Ellipse();                  
            myEllipse.Opacity = .5;
            myEllipse.MouseEnter += MyEllipse_MouseEnter;
            myEllipse.MouseLeave += MyEllipse_MouseLeave;
            users_profiles.Children.Add(myEllipse);

        }

和事件:

 private void MyEllipse_MouseLeave(object sender, MouseEventArgs e)
        {
            DoubleAnimation open_an = new DoubleAnimation();
            open_an.From = 1;
            open_an.To = .5;
            open_an.Duration = TimeSpan.FromSeconds(.3);
            BeginAnimation(OpacityProperty, open_an); // this.BeginAnimation(...) has the same result.
        }

它改變了整個 window 的不透明度

顯然,因為您在 MainWindow 實例上調用BeginAnimation

從 sender 參數中獲取 Ellipse:

private void MyEllipse_MouseLeave(object sender, MouseEventArgs e)
{
    var ellipse = (Ellipse)sender;
    var open_an = new DoubleAnimation
    {
        From = 1,
        To = .5,
        Duration = TimeSpan.FromSeconds(.3)
    };
    ellipse.BeginAnimation(UIElement.OpacityProperty, open_an);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM