优化贴边隐藏动画
This commit is contained in:
@@ -38,7 +38,6 @@ namespace GeekDesk
|
|||||||
public static int hotKeyId = -1;
|
public static int hotKeyId = -1;
|
||||||
public static int toDoHotKeyId = -1;
|
public static int toDoHotKeyId = -1;
|
||||||
public static MainWindow mainWindow;
|
public static MainWindow mainWindow;
|
||||||
public static MarginHide hide;
|
|
||||||
public MainWindow()
|
public MainWindow()
|
||||||
{
|
{
|
||||||
LoadData();
|
LoadData();
|
||||||
@@ -50,10 +49,10 @@ namespace GeekDesk
|
|||||||
ToDoTask.BackLogCheck();
|
ToDoTask.BackLogCheck();
|
||||||
|
|
||||||
////实例化隐藏 Hide类,进行时间timer设置
|
////实例化隐藏 Hide类,进行时间timer设置
|
||||||
hide = new MarginHide(this);
|
MarginHide.ReadyHide(this);
|
||||||
if (appData.AppConfig.MarginHide)
|
if (appData.AppConfig.MarginHide)
|
||||||
{
|
{
|
||||||
hide.TimerSet();
|
MarginHide.StartHide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,11 +64,11 @@ namespace GeekDesk
|
|||||||
this.DataContext = appData;
|
this.DataContext = appData;
|
||||||
if (appData.MenuList.Count == 0)
|
if (appData.MenuList.Count == 0)
|
||||||
{
|
{
|
||||||
appData.MenuList.Add(new MenuInfo() { MenuName = "NewMenu", MenuId = System.Guid.NewGuid().ToString(), MenuEdit = Visibility.Collapsed});
|
appData.MenuList.Add(new MenuInfo() { MenuName = "NewMenu", MenuId = System.Guid.NewGuid().ToString(), MenuEdit = Visibility.Collapsed });
|
||||||
}
|
}
|
||||||
|
|
||||||
this.Width = appData.AppConfig.WindowWidth;
|
this.Width = appData.AppConfig.WindowWidth;
|
||||||
this.Height = appData.AppConfig.WindowHeight;
|
this.Height = appData.AppConfig.WindowHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -84,11 +83,13 @@ namespace GeekDesk
|
|||||||
if (appData.AppConfig.AppAnimation)
|
if (appData.AppConfig.AppAnimation)
|
||||||
{
|
{
|
||||||
this.Opacity = 0;
|
this.Opacity = 0;
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
this.Visibility = Visibility.Collapsed;
|
this.Visibility = Visibility.Collapsed;
|
||||||
}
|
}
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
ShowApp();
|
ShowApp();
|
||||||
}
|
}
|
||||||
@@ -130,7 +131,7 @@ namespace GeekDesk
|
|||||||
{
|
{
|
||||||
if (MotionControl.hotkeyFinished)
|
if (MotionControl.hotkeyFinished)
|
||||||
{
|
{
|
||||||
if (mainWindow.Visibility == Visibility.Collapsed || mainWindow.Opacity == 0)
|
if (mainWindow.Visibility == Visibility.Collapsed || mainWindow.Opacity == 0 || MarginHide.IS_HIDE)
|
||||||
{
|
{
|
||||||
ShowApp();
|
ShowApp();
|
||||||
}
|
}
|
||||||
@@ -160,44 +161,7 @@ namespace GeekDesk
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 淡入淡出效果
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="opacity"></param>
|
|
||||||
/// <param name="milliseconds"></param>
|
|
||||||
/// <param name="visibility"></param>
|
|
||||||
public static void FadeStoryBoard(int opacity, int milliseconds, Visibility visibility)
|
|
||||||
{
|
|
||||||
if (appData.AppConfig.AppAnimation)
|
|
||||||
{
|
|
||||||
DoubleAnimation opacityAnimation = new DoubleAnimation
|
|
||||||
{
|
|
||||||
From = mainWindow.Opacity,
|
|
||||||
To = opacity,
|
|
||||||
Duration = new Duration(TimeSpan.FromMilliseconds(milliseconds))
|
|
||||||
};
|
|
||||||
opacityAnimation.Completed += (s, e) =>
|
|
||||||
{
|
|
||||||
mainWindow.BeginAnimation(OpacityProperty, null);
|
|
||||||
if (visibility == Visibility.Visible)
|
|
||||||
{
|
|
||||||
mainWindow.Opacity = 1;
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
mainWindow.Opacity = 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Timeline.SetDesiredFrameRate(opacityAnimation, 30);
|
|
||||||
mainWindow.BeginAnimation(OpacityProperty, opacityAnimation);
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
//防止关闭动画后 窗体仍是0透明度
|
|
||||||
mainWindow.Opacity = 1;
|
|
||||||
mainWindow.Visibility = visibility;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 注册新建待办的热键
|
/// 注册新建待办的热键
|
||||||
@@ -207,7 +171,7 @@ namespace GeekDesk
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
if (appData.AppConfig.ToDoHotkeyModifiers!=0)
|
if (appData.AppConfig.ToDoHotkeyModifiers != 0)
|
||||||
{
|
{
|
||||||
//加载完毕注册热键
|
//加载完毕注册热键
|
||||||
toDoHotKeyId = GlobalHotKey.RegisterHotKey(appData.AppConfig.ToDoHotkeyModifiers, appData.AppConfig.ToDoHotkey, () =>
|
toDoHotKeyId = GlobalHotKey.RegisterHotKey(appData.AppConfig.ToDoHotkeyModifiers, appData.AppConfig.ToDoHotkey, () =>
|
||||||
@@ -253,7 +217,7 @@ namespace GeekDesk
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 程序窗体拖动
|
/// 程序窗体拖动
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -299,13 +263,14 @@ namespace GeekDesk
|
|||||||
if (appData.AppConfig.AppAnimation)
|
if (appData.AppConfig.AppAnimation)
|
||||||
{
|
{
|
||||||
FadeStoryBoard(0, (int)CommonEnum.WINDOW_ANIMATION_TIME, Visibility.Collapsed);
|
FadeStoryBoard(0, (int)CommonEnum.WINDOW_ANIMATION_TIME, Visibility.Collapsed);
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
this.Visibility = Visibility.Collapsed;
|
this.Visibility = Visibility.Collapsed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///// <summary>
|
///// <summary>
|
||||||
///// 左侧栏宽度改变 持久化
|
///// 左侧栏宽度改变 持久化
|
||||||
@@ -317,7 +282,7 @@ namespace GeekDesk
|
|||||||
// appData.AppConfig.MenuCardWidth = LeftColumn.Width.Value;
|
// appData.AppConfig.MenuCardWidth = LeftColumn.Width.Value;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 右键任务栏图标 显示主面板
|
/// 右键任务栏图标 显示主面板
|
||||||
@@ -335,6 +300,8 @@ namespace GeekDesk
|
|||||||
//{
|
//{
|
||||||
// return;
|
// return;
|
||||||
//}
|
//}
|
||||||
|
//修改贴边隐藏状态为未隐藏
|
||||||
|
MarginHide.IS_HIDE = false;
|
||||||
if (appData.AppConfig.FollowMouse)
|
if (appData.AppConfig.FollowMouse)
|
||||||
{
|
{
|
||||||
ShowWindowFollowMouse.Show(mainWindow, MousePosition.CENTER, 0, 0, false);
|
ShowWindowFollowMouse.Show(mainWindow, MousePosition.CENTER, 0, 0, false);
|
||||||
@@ -348,6 +315,45 @@ namespace GeekDesk
|
|||||||
FadeStoryBoard(0, (int)CommonEnum.WINDOW_ANIMATION_TIME, Visibility.Collapsed);
|
FadeStoryBoard(0, (int)CommonEnum.WINDOW_ANIMATION_TIME, Visibility.Collapsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 淡入淡出效果
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="opacity"></param>
|
||||||
|
/// <param name="milliseconds"></param>
|
||||||
|
/// <param name="visibility"></param>
|
||||||
|
public static void FadeStoryBoard(int opacity, int milliseconds, Visibility visibility)
|
||||||
|
{
|
||||||
|
if (appData.AppConfig.AppAnimation)
|
||||||
|
{
|
||||||
|
DoubleAnimation opacityAnimation = new DoubleAnimation
|
||||||
|
{
|
||||||
|
From = mainWindow.Opacity,
|
||||||
|
To = opacity,
|
||||||
|
Duration = new Duration(TimeSpan.FromMilliseconds(milliseconds))
|
||||||
|
};
|
||||||
|
opacityAnimation.Completed += (s, e) =>
|
||||||
|
{
|
||||||
|
mainWindow.BeginAnimation(OpacityProperty, null);
|
||||||
|
if (visibility == Visibility.Visible)
|
||||||
|
{
|
||||||
|
mainWindow.Opacity = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mainWindow.Opacity = 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Timeline.SetDesiredFrameRate(opacityAnimation, 60);
|
||||||
|
mainWindow.BeginAnimation(OpacityProperty, opacityAnimation);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//防止关闭动画后 窗体仍是0透明度
|
||||||
|
mainWindow.Opacity = 1;
|
||||||
|
mainWindow.Visibility = visibility;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -392,19 +398,6 @@ namespace GeekDesk
|
|||||||
p.Start();
|
p.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 右键任务栏图标退出
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void ExitApp(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
if (appData.AppConfig.MouseMiddleShow)
|
|
||||||
{
|
|
||||||
MouseHookThread.Dispose();
|
|
||||||
}
|
|
||||||
Application.Current.Shutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -451,7 +444,7 @@ namespace GeekDesk
|
|||||||
if (appData.AppConfig.AppHideType == AppHideType.LOST_FOCUS)
|
if (appData.AppConfig.AppHideType == AppHideType.LOST_FOCUS)
|
||||||
{
|
{
|
||||||
//如果开启了贴边隐藏 则窗体不贴边才隐藏窗口
|
//如果开启了贴边隐藏 则窗体不贴边才隐藏窗口
|
||||||
if (appData.AppConfig.MarginHide && !hide.IsMargin())
|
if (appData.AppConfig.MarginHide && !MarginHide.IS_HIDE)
|
||||||
{
|
{
|
||||||
this.Visibility = Visibility.Collapsed;
|
this.Visibility = Visibility.Collapsed;
|
||||||
}
|
}
|
||||||
@@ -476,6 +469,21 @@ namespace GeekDesk
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 右键任务栏图标退出
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void ExitApp(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (appData.AppConfig.MouseMiddleShow)
|
||||||
|
{
|
||||||
|
MouseHookThread.Dispose();
|
||||||
|
}
|
||||||
|
Application.Current.Shutdown();
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 重启
|
/// 重启
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -483,10 +491,13 @@ namespace GeekDesk
|
|||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void ReStartApp(object sender, RoutedEventArgs e)
|
private void ReStartApp(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
MouseHookThread.Dispose();
|
if (appData.AppConfig.MouseMiddleShow)
|
||||||
|
{
|
||||||
|
MouseHookThread.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
Process p = new Process();
|
Process p = new Process();
|
||||||
p.StartInfo.FileName = Constants.APP_DIR + Constants.MY_NAME + ".exe";
|
p.StartInfo.FileName = Constants.APP_DIR + "GeekDesk.exe";
|
||||||
p.StartInfo.WorkingDirectory = Constants.APP_DIR;
|
p.StartInfo.WorkingDirectory = Constants.APP_DIR;
|
||||||
p.Start();
|
p.Start();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user