优化菜单关闭逻辑

This commit is contained in:
ZouJin 2023-04-04 19:32:53 +10:00
parent 33c5429a2d
commit 43685d6e8e
4 changed files with 22 additions and 19 deletions

View File

@ -65,8 +65,10 @@ namespace VPet_Simulator.Core
//var ig2 = Core.Graph.FindGraph(GraphCore.GraphType.Default, core.Save.Mode);
PetGrid2.Visibility = Visibility.Collapsed;
ig.WaitForReadyRun(PetGrid,()=> {
Dispatcher.Invoke(() => {
ig.WaitForReadyRun(PetGrid, () =>
{
Dispatcher.Invoke(() =>
{
PetGrid.Tag = ig;
PetGrid2.Tag = ig;
});
@ -96,11 +98,12 @@ namespace VPet_Simulator.Core
private void MoveTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
string str = DisplayType.ToString();
Core.Controller.MoveWindows(MoveTimerPoint.X, MoveTimerPoint.Y);
if (!str.Contains("Left") && !str.Contains("Right"))
if (MoveTimer.Enabled == false || (!str.Contains("Left") && !str.Contains("Right")))
{
MoveTimer.Enabled = false;
return;
}
Core.Controller.MoveWindows(MoveTimerPoint.X, MoveTimerPoint.Y);
}
public Action DefaultClickAction;
bool isPress = false;

View File

@ -223,7 +223,7 @@ namespace VPet_Simulator.Core
}
else
{
SmartMoveTimer.Enabled = false; ;
SmartMoveTimer.Enabled = false;
SmartMove = false;
}
}

View File

@ -104,14 +104,14 @@ namespace VPet_Simulator.Core
this.sayType = sayType;
}
private void Border_MouseEnter(object sender, MouseEventArgs e)
public void Border_MouseEnter(object sender, MouseEventArgs e)
{
EndTimer.Stop();
CloseTimer.Stop();
this.Opacity = .8;
}
private void Border_MouseLeave(object sender, MouseEventArgs e)
public void Border_MouseLeave(object sender, MouseEventArgs e)
{
if (!ShowTimer.Enabled)
EndTimer.Start();

View File

@ -25,7 +25,7 @@ namespace VPet_Simulator.Core
public partial class ToolBar : UserControl, IDisposable
{
Main m;
Timer closetimer;
public Timer CloseTimer;
bool onFocus = false;
Timer closePanelTimer;
@ -33,13 +33,13 @@ namespace VPet_Simulator.Core
{
InitializeComponent();
this.m = m;
closetimer = new Timer()
CloseTimer = new Timer()
{
Interval = 4000,
AutoReset = false,
Enabled = false
};
closetimer.Elapsed += Closetimer_Elapsed;
CloseTimer.Elapsed += Closetimer_Elapsed;
closePanelTimer = new Timer();
closePanelTimer.Elapsed += ClosePanelTimer_Tick;
m.TimeUIHandle += M_TimeUIHandle;
@ -93,7 +93,7 @@ namespace VPet_Simulator.Core
if (onFocus)
{
onFocus = false;
closetimer.Start();
CloseTimer.Start();
}
else
Dispatcher.Invoke(() => this.Visibility = Visibility.Collapsed);
@ -107,20 +107,20 @@ namespace VPet_Simulator.Core
m.UIGrid.Children.Add(this);
}
Visibility = Visibility.Visible;
if (closetimer.Enabled)
if (CloseTimer.Enabled)
onFocus = true;
else
closetimer.Start();
CloseTimer.Start();
}
private void UserControl_MouseEnter(object sender, MouseEventArgs e)
{
closetimer.Stop();
CloseTimer.Enabled = false;
}
private void UserControl_MouseLeave(object sender, MouseEventArgs e)
{
closetimer.Start();
CloseTimer.Start();
}
private void MenuPanel_Click(object sender, RoutedEventArgs e)
@ -255,7 +255,7 @@ namespace VPet_Simulator.Core
public void Dispose()
{
m = null;
closetimer.Dispose();
CloseTimer.Dispose();
closePanelTimer.Dispose();
}