将动画添加到I';我在代码c#wpf中创建了
我在代码中创建了多个椭圆,并添加了MouseEnter和Leave事件。我的问题是,当我用光标进入椭圆时,它会改变整个窗口的不透明度,而不仅仅是一个椭圆 在这里,我创建了椭圆:将动画添加到I';我在代码c#wpf中创建了,c#,wpf,animation,ellipse,C#,Wpf,Animation,Ellipse,我在代码中创建了多个椭圆,并添加了MouseEnter和Leave事件。我的问题是,当我用光标进入椭圆时,它会改变整个窗口的不透明度,而不仅仅是一个椭圆 在这里,我创建了椭圆: for (int i = 0; i < L2.Count; i++) { Ellipse myEllipse = new Ellipse(); myEllipse.Opacity = .5;
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);
}
它会更改整个窗口的不透明度
显然,因为您在主窗口实例上调用了BeginAnimation
从sender参数获取椭圆:
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);
}
您忘记提供MyEllipse\u MouseEnter事件。
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);
}