mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-07 11:46:30 +02:00
remove blur when there is no blur in theme #711
This commit is contained in:
@@ -58,10 +58,20 @@ namespace Wox.Core.Resource
|
|||||||
ResourceMerger.UpdateResource(this);
|
ResourceMerger.UpdateResource(this);
|
||||||
|
|
||||||
// Exception of FindResource can't be cathed if global exception handle is set
|
// Exception of FindResource can't be cathed if global exception handle is set
|
||||||
var isBlur = Application.Current.TryFindResource("ThemeBlurEnabled");
|
if (Environment.OSVersion.Version >= new Version(6, 2))
|
||||||
if (isBlur is bool && Environment.OSVersion.Version >= new Version(6, 2))
|
|
||||||
{
|
{
|
||||||
SetBlurForWindow(Application.Current.MainWindow, (bool)isBlur);
|
var resource = Application.Current.TryFindResource("ThemeBlurEnabled");
|
||||||
|
bool blur;
|
||||||
|
if (resource is bool)
|
||||||
|
{
|
||||||
|
blur = (bool)resource;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
blur = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetBlurForWindow(Application.Current.MainWindow, blur);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,20 +175,24 @@ namespace Wox.Core.Resource
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sets the blur for a window via SetWindowCompositionAttribute
|
/// Sets the blur for a window via SetWindowCompositionAttribute
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="wind">window to blur</param>
|
/// <param name="w">window to blur</param>
|
||||||
/// <param name="isBlur">true/false - on or off correspondingly</param>
|
/// <param name="blur">true/false - on or off correspondingly</param>
|
||||||
private void SetBlurForWindow(Window wind, bool isBlur)
|
private void SetBlurForWindow(Window w, bool blur)
|
||||||
{
|
{
|
||||||
if (isBlur)
|
if (blur)
|
||||||
{
|
{
|
||||||
SetWindowAccent(wind, AccentState.ACCENT_ENABLE_BLURBEHIND);
|
SetWindowAccent(w, AccentState.ACCENT_ENABLE_BLURBEHIND);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetWindowAccent(w, AccentState.ACCENT_DISABLED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetWindowAccent(Window wind, AccentState themeAccentMode)
|
private void SetWindowAccent(Window w, AccentState state)
|
||||||
{
|
{
|
||||||
var windowHelper = new WindowInteropHelper(wind);
|
var windowHelper = new WindowInteropHelper(w);
|
||||||
var accent = new AccentPolicy { AccentState = themeAccentMode };
|
var accent = new AccentPolicy { AccentState = state };
|
||||||
var accentStructSize = Marshal.SizeOf(accent);
|
var accentStructSize = Marshal.SizeOf(accent);
|
||||||
|
|
||||||
var accentPtr = Marshal.AllocHGlobal(accentStructSize);
|
var accentPtr = Marshal.AllocHGlobal(accentStructSize);
|
||||||
|
|||||||
Reference in New Issue
Block a user