我正在创建一个后退按钮(名为BackGrid),当我将光标放在网格中时应该会出现,如果光标仍不在网格或后退按钮内,则在0.7秒后消失。
出现的部分很好用,但是消失的部分似乎不起作用。
我做了一些小的故障排除,并尝试了以下方法:
animateBackViewBox(false);
放在CursorInsideSubGrid = false
的正下方,以尝试查看动画是否独立运行良好。结果是它可以正常运行。animateBackViewBox(false);
并输入了MessageBox.Show("You left after .7 seconds");
。结果是它也可以正常运行。所以目前我很困惑真正的问题所在,因为它们两个都可以独立工作。
private void ItemSubGrid_MouseEnter(object sender, MouseEventArgs e)
{
CursorInsideSubGrid = true;
animateBackViewBox(true);
}
private void ItemSubGrid_MouseLeave(object sender, MouseEventArgs e)
{
CursorInsideSubGrid = false;
Task.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(700);
if(CursorInsideSubGrid == false)
{
animateBackViewBox(false);
}
});
}
void animateBackViewBox(bool show)
{
DoubleAnimation da = new DoubleAnimation();
if (show == true)
{
BackGrid.IsHitTestVisible = true;
da.From = BackGrid.Opacity;
da.To = 100;
}
else
{
BackGrid.IsHitTestVisible = false;
da.From = BackGrid.Opacity;
da.To = 0;
}
da.AccelerationRatio = 1;
da.Duration = new Duration(TimeSpan.FromMilliseconds(300));
BackGrid.BeginAnimation(OpacityProperty,da);
}
答案 0 :(得分:-1)
前一段时间,我在GUI和更新方面也遇到了麻烦。就我而言,我有一个名为Loading的进度栏,上面带有标签,问题是,该标签是GUI中的“孔” 我可以通过
解决Loading.Update();
我不知道它是否适合您,但值得一试
链接到我提到的问题/答案:c# Label is "empty"/is a hole in the form