Wpf контролировать размер содержимого?

. NET хранит все строки как последовательность кодовых блоков UTF-16. (Это достаточно близко для «символов Unicode» для большинства целей.)

К счастью для вас, Unicode был разработан таким образом, что значения ASCII сопоставляются с одним и тем же номером в Unicode, поэтому после того, как вы преобразовали каждый символ в целое число, вы можете просто проверить, находится ли он в диапазоне ASCII. Обратите внимание, что вы можете использовать неявное преобразование из char в int - нет необходимости вызывать метод преобразования:

string text = "Here's some text including a \u00ff non-ASCII character";
foreach (char c in text)
{
    int unicode = c;
    Console.WriteLine(unicode < 128 ? "ASCII: {0}" : "Non-ASCII: {0}", unicode);
}
63
задан Dave Clemmer 28 August 2011 в 19:42
поделиться

2 ответа

Для большинства элементов управления вы устанавливаете его высоту и ширину на Авто в XAML, и он будет соответствовать размеру его содержимого.

В коде вы устанавливаете ширина / высота до double.NaN . Для получения подробной информации см. FrameworkElement.Width , особенно раздел «примечания».

85
ответ дан 24 November 2019 в 15:25
поделиться

У меня была подобная проблема, когда я указал ширину окна, но высота была установлена на Auto. У дочерней DockPanel VerticalAlignment было установлено значение Top, а у окна VerticalContentAlignment было установлено значение Top, но окно все равно было намного выше содержимого.

Используя Snoop, я обнаружил, что ContentPresenter внутри окна (часть окна, а не то, что я туда поместил) имеет VerticalAlignment, установленный на Stretch и не может быть изменен без повторного рассмотрения всего окна!

После многих разочарований я обнаружил свойство SizeToContent - вы можете использовать его, чтобы указать, хотите ли вы, чтобы окно имело вертикальный, горизонтальный или оба размера, в соответствии с размером содержимого - теперь все хорошо выравнивается, я просто не могу поверить, что мне понадобилось столько времени, чтобы найти это свойство!

31
ответ дан 24 November 2019 в 15:25
поделиться
Другие вопросы по тегам:

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