Как я прошу у Windows размер значков системного лотка?

Вы можете использовать методы из Object, потому что Стандартная спецификация языка ECMA-334 C # гласит:

14. Выражения

14.3 Поиск членов

14.3.1 Базовые типы

Для целей поиска членов тип Считается, что T имеет следующие базовые типы:

[...]

  • Если T имеет интерфейсный тип , то базовые типы T являются базовыми интерфейсами T и типом класса object.
blockquote>

Вот почему вы можете вызвать ToString() для переменной, в которой в качестве типа используется интерфейс, даже если для этого интерфейса не определен метод ToString().

9
задан keelo 5 March 2009 в 17:39
поделиться

3 ответа

Ваш лучший выбор может быть передачей GetThemeBackgroundContentRect TBN_BACKGROUND как iPartId для лотка уведомляют фон.

GetThemeBackgroundContentRect должен возвратить размер, определенный текущей темой, которая может использоваться для рисования, не перекрывая границы родительского элемента. Если бы я читаю это правильно, которое было бы самым большим размерным допустимым значком уведомления и по-видимому размер, который используется.

Тестирование с несколькими настройками DPI является, вероятно, самым легким способом сказать, возвращает ли это правильное значение.

0
ответ дан 5 December 2019 в 02:08
поделиться

Базовый ответ Mark's является правильным: Создайте свои значки в нескольких форматах и позвольте Windows выбрать правильный. Не забывайте делать 32x32 и 64x64 значки для сценариев HighDPI.

Но SM_CXICON/SM_CYICON не обязательно возвратит размер, который будет использоваться в панели задач. Панель задач выбирает правильный размер значков, поскольку это - размер (это намного более важно в Окне 7).

Просто обеспечьте соответственно измеренные значки, и необходимо быть в порядке.

1
ответ дан 5 December 2019 в 02:08
поделиться

Создайте свои значки в нескольких форматах и позвольте Windows выбрать тот, который он хочет.

Вот статья Wikipedia о .ico формате.

Если действительно необходимо знать, GetSystemMetrics с параметром SM_CXICON или SM_CYICON скажет Вам ширину и высоту, что Windows хочет загрузиться.

1
ответ дан 5 December 2019 в 02:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: