交互优化, 断网更新弹框删除,图标显示优化,待办任务bug修复
This commit is contained in:
52
Util/DefaultIcons.cs
Normal file
52
Util/DefaultIcons.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GeekDesk.Util
|
||||
{
|
||||
public static class DefaultIcons
|
||||
{
|
||||
private static Icon folderIcon;
|
||||
|
||||
public static Icon FolderLarge => folderIcon ?? (folderIcon = GetStockIcon(SHGSI_ICON, SHGSI_LARGEICON));
|
||||
|
||||
public static Icon GetStockIcon(uint type, uint size)
|
||||
{
|
||||
var info = new SHSTOCKICONINFO();
|
||||
info.cbSize = (uint)Marshal.SizeOf(info);
|
||||
|
||||
SHGetStockIconInfo(type, SHGSI_ICON | size, ref info);
|
||||
|
||||
var icon = (Icon)Icon.FromHandle(info.hIcon).Clone(); // Get a copy that doesn't use the original handle
|
||||
DestroyIcon(info.hIcon); // Clean up native icon to prevent resource leak
|
||||
|
||||
return icon;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
||||
public struct SHSTOCKICONINFO
|
||||
{
|
||||
public uint cbSize;
|
||||
public IntPtr hIcon;
|
||||
public int iSysIconIndex;
|
||||
public int iIcon;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
|
||||
public string szPath;
|
||||
}
|
||||
|
||||
[DllImport("shell32.dll")]
|
||||
public static extern int SHGetStockIconInfo(uint siid, uint uFlags, ref SHSTOCKICONINFO psii);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern bool DestroyIcon(IntPtr handle);
|
||||
|
||||
public static uint SHSIID_FOLDER = 0x3;
|
||||
public static uint SHGSI_ICON = 0x100;
|
||||
public static uint SHGSI_LARGEICON = 0x0;
|
||||
public static uint SHGSI_SMALLICON = 0x1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user