Как нарисовать Wingdings 2 символа вне диапазона 0..255 в .NET? - PullRequest
0 голосов
/ 10 апреля 2010

Стандартная утилита Windows Charmap показывает довольно много символов шрифтом «Wingdings 2», чьи коды символов больше 255 - например, 0xE4E показывает руку.

Однако, если я попытаюсь нарисовать эти символы следующим образом:

g.DrawString(new string((char) 0xE4E, 1), new Font("Wingdings 2", 20), brush, x, y);

тогда все, что я получаю, это стандартный символ замены "коробки". Это странно, потому что приведенный выше код работает для символов Wingdings 2 в диапазоне от 0x21 до 0xFF, а также работает для всех символов, например, в Arial Unicode MS.

Как я могу нарисовать эти символы из этого конкретного шрифта? Есть ли отдельный API?

(Win7; .NET 3.5 SP1)


P.S. Вот странный шрифт карты символов с дублированными диапазонами символов:

charmap http://i40.tinypic.com/2vtxyj4.jpg

Ответы [ 2 ]

2 голосов
/ 10 апреля 2010

Нет, нет специального API и шрифтов как таковых. Wingdings и соавт. просто не используйте «ожидаемые» глифы для кодов символов

Однако я не вижу этот символ в Charmap с этим кодом для этого шрифта (Win 7). Если вы думаете о персонаже, о котором я думаю, это просто 0x4E.

Wingdings 2 в таблице символов http://img213.imageshack.us/img213/5746/charmapwingdings2.png

1 голос
/ 10 апреля 2010

В моем CharMap (Vista) WinDings 2 достигает 0xFF

.

Так что ваш код хорош, вы (char) коды сомневаетесь.

...