1

デスクトップの壁紙として使用するために、画像または単純な色にグリッド線を適用する単純なアプリケーションを作成しました。アイデアは、デスクトップ アイコンをグリッド内に配置できるということです。問題は、私が理解しているよりも多くのことに依存して、実際のピクセル単位の間隔がシステムごとに異なるように見えることです。私は、少なくともこれらのことが要因であることを学びました:

  • 解像度(当たり前)
  • タスクバーのサイズと配置
  • フォント

これ以上のものがあるはずです。たぶん、私が知らないAPI呼び出しがありますか?

4

2 に答える 2

3

これを取得/設定する方法は 1001 通りあります (ただし、私が知っているのは 2 つだけです) :-D

Windows 登録:

HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics

値はIconSpacingIconVerticalSpacing です

コードで:

using System.Management;

public string GetWinIconSpace()

{

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2","SELECT * FROM Win32_Desktop"); 

foreach (ManagementObject wmi in searcher.Get())
{
    try
    {

        return "Desktop Icon Spacing: " + wmi.GetPropertyValue("IconSpacing").ToString();

    }

    catch { }

}

return "Desktop Icon Spacing: Unknown";

}

私が試したことのない3つ目は、ここで見つけることができます

于 2008-10-14T21:55:27.030 に答える
0

要求されたアイコンのサイズが利用できない場合、スケーリング アルゴリズムが原因でサイズの問題になることもあります。
(アイコンファイルは実際にはアイコンのコレクションであるため、アイコンについてのこのスレッドで説明されているように、カーソルはそれらがどこから来たのかを知っています。古い新しいものから)

于 2008-10-14T21:53:26.257 に答える