Есть ли способ получить высоту и ширину полосы прокрутки?

Я пытаюсь получить высоту и ширину полос прокрутки, которые отображаются в виде списка. Существует ли простой способ сделать это? Я сделал некоторые google, и похоже, что это может быть системная настройка. Я просто не знаю, где искать.

2 ответов


Да, это системная настройка. Использование Системы Сведения.HorizontalScrollBarHeight и SystemInformation.VerticalScrollBarWidth.


на .Net CF, где SystemInformation.HorizontalScrollBarHeight и SystemInformation.VerticalScrollBarWidth не существует, требуется некоторый P/Invoke:

public sealed class Native
{
    public static Int32 GetVerticalScrollbarWidth()
    {
        return GetSystemMetrics(SM_CXVSCROLL);
    }

    public Int32 GetHorizontalScrollbarHeight()
    {
        return GetSystemMetrics(SM_CYHSCROLL);
    }

    [DllImport("coredll.dll", SetLastError = true)]
    public static extern Int32 GetSystemMetrics(Int32 index);

    public const Int32
        SM_CXVSCROLL = 2,
        SM_CYHSCROLL = 3;
}