Unicode String Убит TextBox Visual C # (не отображение, а настоящая строка) - PullRequest
1 голос
/ 07 января 2011

У меня есть приложение, которое требует отображения строк Unicode с использованием определенного шрифта lookup-table-esque.

Этот шрифт содержит действительные символы для символов от U + 0000 до U + 0020.

У меня нет проблем с построением моей строки из набора символов. Проблема в том, когда я пытаюсь установить эту строку в текстовое поле.

Независимо от того, какой шрифт я выбрал для текстового поля (специальный шрифт или другой), когда я делаю «TextBox1.Text = mycrazystring», затем проверяю свойство Text TextBox1 (которое я только что установил), я получаю " , ничего.

Это потому, что символы Unicode от U + 0000 до U + 0020 не поддерживаются? Получают ли они доступ к таким функциям, как перевод строки, табуляция или возврат, как я подозреваю, они делают, когда попадают в текстовое поле?

Если я строю строку, содержащую символы от 0000 до 0023, я ожидаю увидеть хотя бы восклицательный знак в свойстве TextBox1.Text после того, как ему присвоена строка, но без кубиков.

Нужно ли создавать собственный шрифт, который смещает мой текущий шрифт на 0020?

1 Ответ

2 голосов
/ 08 января 2011

Отображение символов Unicode на несвязанные глифы не должно быть сделано. Вы можете столкнуться с множеством проблем, когда алгоритмы верстки текста делают неподходящие вещи. Сопоставление управляющих символов с пользовательскими символами - это безумие; это, безусловно, запутает виджеты пользовательского интерфейса и многие другие инструменты.

Нужно ли создавать собственный шрифт, который смещает мой текущий шрифт на 0020?

Нет, вам нужно сдвинуть его на + E000 или больше в зону личного пользования .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...