diff --git a/ContextMenuManager/BluePointLilac.Methods/ImageExtension.cs b/ContextMenuManager/BluePointLilac.Methods/ImageExtension.cs
index f1fa1c99..61561e4b 100644
--- a/ContextMenuManager/BluePointLilac.Methods/ImageExtension.cs
+++ b/ContextMenuManager/BluePointLilac.Methods/ImageExtension.cs
@@ -20,6 +20,11 @@ public static Image ToTransparent(this Image image, float opacity = 0.5F)
return bitmap;
}
+ public static Image ToInferredIcon(this Image image, float opacity = 0.5F)
+ {
+ return AppConfig.DimInferredIcons ? image.ToTransparent(opacity) : image;
+ }
+
public static Image ResizeImage(this Image image, int width, int height)
{
//return image.GetThumbnailImage(width, height, null, System.IntPtr.Zero);//质量稍微低一点
diff --git a/ContextMenuManager/Controls/ShellItem.cs b/ContextMenuManager/Controls/ShellItem.cs
index a6d3818f..762bf309 100644
--- a/ContextMenuManager/Controls/ShellItem.cs
+++ b/ContextMenuManager/Controls/ShellItem.cs
@@ -52,7 +52,7 @@ public string RegPath
if (List != null)
{
Image = ItemIcon.ToBitmap();
- if (!HasIcon) Image = Image.ToTransparent();
+ if (!HasIcon) Image = Image.ToInferredIcon();
BtnSubItems.Visibility = IsMultiItem ? Visibility.Visible : Visibility.Collapsed;
}
}
@@ -291,7 +291,7 @@ public string ItemCommand
{
if (!TryProtectOpenItem()) return;
Registry.SetValue(CommandPath, "", value);
- if (!HasIcon) Image = ItemIcon.ToBitmap().ToTransparent();
+ if (!HasIcon) Image = ItemIcon.ToBitmap().ToInferredIcon();
}
}
@@ -478,7 +478,7 @@ private void DeleteIcon()
{
IconLocation = null;
HasLUAShield = false;
- Image = Image.ToTransparent();
+ Image = Image.ToInferredIcon();
}
private void UseShieldIcon()
@@ -494,7 +494,7 @@ private void UseShieldIcon()
}
else
{
- Image = Image.ToTransparent();
+ Image = Image.ToInferredIcon();
}
}
}
diff --git a/ContextMenuManager/Methods/AppConfig.cs b/ContextMenuManager/Methods/AppConfig.cs
index 63d12090..54cefe51 100644
--- a/ContextMenuManager/Methods/AppConfig.cs
+++ b/ContextMenuManager/Methods/AppConfig.cs
@@ -285,6 +285,12 @@ public static bool HideSysStoreItems
set => SetGeneralValue("HideSysStoreItems", value ? 1 : 0);
}
+ public static bool DimInferredIcons
+ {
+ get => GetGeneralValue("DimInferredIcons") != "0";
+ set => SetGeneralValue("DimInferredIcons", value ? 1 : 0);
+ }
+
public static bool RequestUseGithub
{
get
diff --git a/ContextMenuManager/Methods/AppString.cs b/ContextMenuManager/Methods/AppString.cs
index e109ea82..f49433f3 100644
--- a/ContextMenuManager/Methods/AppString.cs
+++ b/ContextMenuManager/Methods/AppString.cs
@@ -378,6 +378,7 @@ public static class Other
public static string OpenMoreExplorer { get; set; }
public static string HideDisabledItems { get; set; }
public static string HideSysStoreItems { get; set; }
+ public static string DimInferredIcons { get; set; }
public static string SetPerceivedType { get; set; }
public static string SetDefaultDropEffect { get; set; }
public static string TopMost { get; set; }
diff --git a/ContextMenuManager/Properties/Resources/Texts/AppLanguageDic.ini b/ContextMenuManager/Properties/Resources/Texts/AppLanguageDic.ini
index f67e3238..ccce4b26 100644
--- a/ContextMenuManager/Properties/Resources/Texts/AppLanguageDic.ini
+++ b/ContextMenuManager/Properties/Resources/Texts/AppLanguageDic.ini
@@ -324,6 +324,7 @@ CustomEngine = 自定义
SetCustomEngine = 设置搜索引擎 (以 %s 代替搜索关键词)
HideDisabledItems = 隐藏已禁用的菜单项目
HideSysStoreItems = 隐藏公共引用中的系统菜单
+DimInferredIcons = 对推测的图标使用半透明效果
SetPerceivedType = 设置扩展名为 %s 的文件感知类型为
SetDefaultDropEffect = 设置文件对象默认拖拽命令为
TopMost = 使窗口始终在屏幕最上方
diff --git a/ContextMenuManager/Views/AppSettingView.xaml b/ContextMenuManager/Views/AppSettingView.xaml
index f2b2a760..3f520151 100644
--- a/ContextMenuManager/Views/AppSettingView.xaml
+++ b/ContextMenuManager/Views/AppSettingView.xaml
@@ -314,6 +314,27 @@
OnContent=""
Toggled="HideSysStoreItemsCheckBox_OnChanged" />
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ContextMenuManager/Views/AppSettingView.xaml.cs b/ContextMenuManager/Views/AppSettingView.xaml.cs
index cd733568..d548a754 100644
--- a/ContextMenuManager/Views/AppSettingView.xaml.cs
+++ b/ContextMenuManager/Views/AppSettingView.xaml.cs
@@ -40,6 +40,7 @@ public void RefreshFromConfig()
OpenMoreExplorerCheckBox.IsOn = AppConfig.OpenMoreExplorer;
HideDisabledItemsCheckBox.IsOn = AppConfig.HideDisabledItems;
HideSysStoreItemsCheckBox.IsOn = AppConfig.HideSysStoreItems;
+ DimInferredIconsCheckBox.IsOn = AppConfig.DimInferredIcons;
var showHideSysStore = WinOsVersion.Current >= WinOsVersion.Win7;
HideSysStoreRow.Visibility = showHideSysStore ? Visibility.Visible : Visibility.Collapsed;
@@ -110,6 +111,8 @@ private void LoadLabels()
HideSysStoreItemsLabel.Text = AppString.Other.HideSysStoreItems;
+ DimInferredIconsLabel.Text = AppString.Other.DimInferredIcons;
+
LoadDynamicOptions();
}
@@ -282,6 +285,14 @@ private void HideSysStoreItemsCheckBox_OnChanged(object sender, RoutedEventArgs
}
}
+ private void DimInferredIconsCheckBox_OnChanged(object sender, RoutedEventArgs e)
+ {
+ if (!isLoading)
+ {
+ AppConfig.DimInferredIcons = DimInferredIconsCheckBox.IsOn;
+ }
+ }
+
private static int GetUpdateSelectIndex()
{
return AppConfig.UpdateFrequency switch
diff --git a/languages/en-US.ini b/languages/en-US.ini
index 51c27e04..5b651135 100644
--- a/languages/en-US.ini
+++ b/languages/en-US.ini
@@ -328,6 +328,7 @@ CustomEngine = Custom...
SetCustomEngine = Define search engine (use %s instead of search keywords)
HideDisabledItems = Hide disabled items
HideSysStoreItems = Hide system store items
+DimInferredIcons = Dim icons inferred from the item's command
SetPerceivedType = Set %s perceived type...
SetDefaultDropEffect = Set default drop effect
TopMost = Always on top
diff --git a/languages/zh-CN.ini b/languages/zh-CN.ini
index f67e3238..ccce4b26 100644
--- a/languages/zh-CN.ini
+++ b/languages/zh-CN.ini
@@ -324,6 +324,7 @@ CustomEngine = 自定义
SetCustomEngine = 设置搜索引擎 (以 %s 代替搜索关键词)
HideDisabledItems = 隐藏已禁用的菜单项目
HideSysStoreItems = 隐藏公共引用中的系统菜单
+DimInferredIcons = 对推测的图标使用半透明效果
SetPerceivedType = 设置扩展名为 %s 的文件感知类型为
SetDefaultDropEffect = 设置文件对象默认拖拽命令为
TopMost = 使窗口始终在屏幕最上方