Подсчет ширины контрола, по длине строки

194
21 апреля 2017, 17:52

Собственно есть старый и мохнатый уже легаси код, контролы реализованы на WinForms, а времени и денег на переписывание на WPF нету. Его используем как можем, каждый раз когда внедряем какой нибудь контрол в WPF, вылезают баги.

Сейчас баг немного специфичный. Есть контрол, внутри контрола Label, ширина которого рассчитывается так :

return (int) LabelControl.CreateGraphics().MeasureString(TextLabel, TextLabel.Font).Width + 40;

Если смотреть на WinForms тестовом приложении, все отлично. Если вбить контрол внутрь WPF, он берет текст и если там есть пробелы, то переносит текст, врапит.

Есть вариант хардкода, подменять строку на модифицированную, и заменить пробелы на любой другой символ, но это еще пока предположение, есть какие либо более уместные и гибкие пути?

Answer 1

Ответ прост. Переписал просто расчет, добавил пикселей 10. Почему такое поведение, и почему именно надо добавить 10 пикселей не могу предположить, скорее всего, в других приложениях, кстати винформовских, на этот контрол вешается Margin.

READ ALSO
Canvas, как панель для набора элементов, и Behaviors

Canvas, как панель для набора элементов, и Behaviors

Мне нужно в качестве панели для элементов указать Canvas и подключить возможность перемещать элементы в ней

248
Как прицепиться к окну?

Как прицепиться к окну?

Можно ли как то привязать окно моей программы к окну другой программы?

200
Удалить из списка значения, которых нет в другом списке

Удалить из списка значения, которых нет в другом списке

Для того, чтобы удалить все элементы подходящие под условие можно использовать метод RemoveAll

237