Update Growl.cs
This commit is contained in:
1 parent
1bc5a84959
commit
8bb9e7a02c
1 file changed
+111
-112
@@ -278,7 +278,7 @@ namespace HandyControl.Controls
|
||||
}
|
||||
|
||||
_tickCount++;
|
||||
if (_tickCount >= _waitTime) Close();
|
||||
if (_tickCount >= _waitTime) Close(true);
|
||||
};
|
||||
_timerClose.Start();
|
||||
}
|
||||
@@ -462,6 +462,96 @@ namespace HandyControl.Controls
|
||||
#endif
|
||||
}
|
||||
|
||||
private static void InitGrowlInfo(ref GrowlInfo growlInfo, InfoType infoType)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
growlInfo.Type = infoType;
|
||||
|
||||
switch (infoType)
|
||||
{
|
||||
case InfoType.Success:
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.SuccessGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.SuccessBrush;
|
||||
}
|
||||
else
|
||||
{
|
||||
growlInfo.IconKey ??= ResourceToken.SuccessGeometry;
|
||||
growlInfo.IconBrushKey ??= ResourceToken.SuccessBrush;
|
||||
}
|
||||
break;
|
||||
case InfoType.Info:
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.InfoGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.InfoBrush;
|
||||
}
|
||||
else
|
||||
{
|
||||
growlInfo.IconKey ??= ResourceToken.InfoGeometry;
|
||||
growlInfo.IconBrushKey ??= ResourceToken.InfoBrush;
|
||||
}
|
||||
break;
|
||||
case InfoType.Warning:
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.WarningGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.WarningBrush;
|
||||
}
|
||||
else
|
||||
{
|
||||
growlInfo.IconKey ??= ResourceToken.WarningGeometry;
|
||||
growlInfo.IconBrushKey ??= ResourceToken.WarningBrush;
|
||||
}
|
||||
break;
|
||||
case InfoType.Error:
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.ErrorGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.DangerBrush;
|
||||
growlInfo.StaysOpen = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
growlInfo.IconKey ??= ResourceToken.ErrorGeometry;
|
||||
growlInfo.IconBrushKey ??= ResourceToken.DangerBrush;
|
||||
}
|
||||
break;
|
||||
case InfoType.Fatal:
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.FatalGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.PrimaryTextBrush;
|
||||
growlInfo.StaysOpen = true;
|
||||
growlInfo.ShowCloseButton = false;
|
||||
if (GrowlPanel.ContextMenu != null) GrowlPanel.ContextMenu.Opacity = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
growlInfo.IconKey ??= ResourceToken.FatalGeometry;
|
||||
growlInfo.IconBrushKey ??= ResourceToken.PrimaryTextBrush;
|
||||
}
|
||||
break;
|
||||
case InfoType.Ask:
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.AskGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.AccentBrush;
|
||||
growlInfo.StaysOpen = true;
|
||||
growlInfo.ShowCloseButton = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
growlInfo.IconKey ??= ResourceToken.AskGeometry;
|
||||
growlInfo.IconBrushKey ??= ResourceToken.AccentBrush;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(infoType), infoType, null);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 成功
|
||||
/// </summary>
|
||||
@@ -479,13 +569,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void Success(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.SuccessGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.SuccessBrush;
|
||||
growlInfo.Type = InfoType.Success;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Success);
|
||||
Show(growlInfo);
|
||||
}
|
||||
|
||||
@@ -504,13 +588,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void SuccessGlobal(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.SuccessGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.SuccessBrush;
|
||||
growlInfo.Type = InfoType.Success;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Success);
|
||||
ShowGlobal(growlInfo);
|
||||
}
|
||||
|
||||
@@ -531,13 +609,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void Info(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.InfoGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.InfoBrush;
|
||||
growlInfo.Type = InfoType.Info;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Info);
|
||||
Show(growlInfo);
|
||||
}
|
||||
|
||||
@@ -556,13 +628,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void InfoGlobal(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.InfoGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.InfoBrush;
|
||||
growlInfo.Type = InfoType.Info;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Info);
|
||||
ShowGlobal(growlInfo);
|
||||
}
|
||||
|
||||
@@ -583,13 +649,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void Warning(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.WarningGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.WarningBrush;
|
||||
growlInfo.Type = InfoType.Warning;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Warning);
|
||||
Show(growlInfo);
|
||||
}
|
||||
|
||||
@@ -608,13 +668,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void WarningGlobal(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.WarningGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.WarningBrush;
|
||||
growlInfo.Type = InfoType.Warning;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Warning);
|
||||
ShowGlobal(growlInfo);
|
||||
}
|
||||
|
||||
@@ -635,14 +689,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void Error(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.ErrorGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.DangerBrush;
|
||||
growlInfo.StaysOpen = true;
|
||||
growlInfo.Type = InfoType.Error;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Error);
|
||||
Show(growlInfo);
|
||||
}
|
||||
|
||||
@@ -661,14 +708,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void ErrorGlobal(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.ErrorGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.DangerBrush;
|
||||
growlInfo.StaysOpen = true;
|
||||
growlInfo.Type = InfoType.Error;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Error);
|
||||
ShowGlobal(growlInfo);
|
||||
}
|
||||
|
||||
@@ -689,16 +729,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void Fatal(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.FatalGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.PrimaryTextBrush;
|
||||
growlInfo.StaysOpen = true;
|
||||
growlInfo.ShowCloseButton = false;
|
||||
growlInfo.Type = InfoType.Fatal;
|
||||
if (GrowlPanel.ContextMenu != null) GrowlPanel.ContextMenu.Opacity = 0;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Fatal);
|
||||
Show(growlInfo);
|
||||
}
|
||||
|
||||
@@ -717,16 +748,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void FatalGlobal(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.FatalGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.PrimaryTextBrush;
|
||||
growlInfo.StaysOpen = true;
|
||||
growlInfo.ShowCloseButton = false;
|
||||
growlInfo.Type = InfoType.Fatal;
|
||||
if (GrowlPanel.ContextMenu != null) GrowlPanel.ContextMenu.Opacity = 0;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Fatal);
|
||||
ShowGlobal(growlInfo);
|
||||
}
|
||||
|
||||
@@ -749,15 +771,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void Ask(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.AskGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.AccentBrush;
|
||||
growlInfo.StaysOpen = true;
|
||||
growlInfo.ShowCloseButton = false;
|
||||
growlInfo.Type = InfoType.Ask;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Ask);
|
||||
Show(growlInfo);
|
||||
}
|
||||
|
||||
@@ -778,15 +792,7 @@ namespace HandyControl.Controls
|
||||
/// <param name="growlInfo"></param>
|
||||
public static void AskGlobal(GrowlInfo growlInfo)
|
||||
{
|
||||
if (growlInfo == null) throw new ArgumentNullException(nameof(growlInfo));
|
||||
if (!growlInfo.IsCustom)
|
||||
{
|
||||
growlInfo.IconKey = ResourceToken.AskGeometry;
|
||||
growlInfo.IconBrushKey = ResourceToken.AccentBrush;
|
||||
growlInfo.StaysOpen = true;
|
||||
growlInfo.ShowCloseButton = false;
|
||||
growlInfo.Type = InfoType.Ask;
|
||||
}
|
||||
InitGrowlInfo(ref growlInfo, InfoType.Ask);
|
||||
ShowGlobal(growlInfo);
|
||||
}
|
||||
|
||||
@@ -795,8 +801,13 @@ namespace HandyControl.Controls
|
||||
/// <summary>
|
||||
/// 关闭
|
||||
/// </summary>
|
||||
private void Close()
|
||||
private void Close(bool invokeActionBeforeClose = false, bool invokeParam = true)
|
||||
{
|
||||
if (invokeActionBeforeClose)
|
||||
{
|
||||
ActionBeforeClose?.Invoke(invokeParam);
|
||||
}
|
||||
|
||||
_timerClose?.Stop();
|
||||
var transform = new TranslateTransform();
|
||||
_gridMain.RenderTransform = transform;
|
||||
@@ -862,20 +873,8 @@ namespace HandyControl.Controls
|
||||
GrowlWindow = null;
|
||||
}
|
||||
|
||||
private void ButtonCancel_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ActionBeforeClose?.Invoke(false) == true)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
private void ButtonCancel_OnClick(object sender, RoutedEventArgs e) => Close(true, false);
|
||||
|
||||
private void ButtonOk_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ActionBeforeClose?.Invoke(true) == true)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
private void ButtonOk_OnClick(object sender, RoutedEventArgs e) => Close(true);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user