Почему двоеточие в содержимом CheckBox помещается неправильно, если для FlowDirection установлено значение RightToLeft - PullRequest
2 голосов
/ 20 февраля 2012

Это, пожалуй, довольно глупая «проблема».У меня есть CheckBox на моей странице в приложении WPF.Когда я устанавливаю свойство Content элемента CheckBox, например, «CheckBox Content», само поле помещается слева от текста.Когда я устанавливаю FlowDirection "RightToLeft", текст помещается слева, а поле справа, как вы можете видеть на следующем изображении:

Correct Content Layout

Пока все хорошо, верно?

Теперь я изменяю Контент на «Контент CheckBox:» (обратите внимание на двоеточие) и FlowDirection «LeftToRight», все по-прежнему выглядит нормально: box - text - двоеточие.Теперь придет глупость ... Я установил для FlowDirection значение "RightToLeft", чтобы сначала был текст, а затем поле, но двоеточие полностью расположено слева, см. Это изображение:

enter image description here

Не то, чтобы я не мог решить эту проблему, но мне нужно перейти в файл XAML, чтобы изменить тег на:

<CheckBox Content=" : CheckBox Content" />

Без обид, но это довольно нелепо, потому что, когда я сейчас изменяюсьFlowDirection обратно на LeftToRight, порядок - box - двоеточие - текст.

Мой вопрос , есть ли у кого-нибудь идеи, что вызывает это?Или это должно произойти?И есть ли другие элементы управления, где это может произойти?

1 Ответ

2 голосов
/ 20 февраля 2012

Он делает то, что говорит.Я думаю, вы не понимаете, что такое FlowDirection. FlowDirection действительно следует использовать только для языков справа налево.Языки, такие как арабский и иврит, читаются напротив нас.Они читают справа налево, поэтому естественно "."будет в конце предложения, который является крайним левым символом.

WPF (и другие фреймворки Microsoft) достаточно умны, чтобы понимать, что ваше приложение, компьютер и потоки написаны на английском языке, поэтому они переопределяют RightToLeft (ну почти) но не пунктуация.

Если вы хотите, чтобы ваш CheckBox находился на другой стороне (и это будет не правильно), вам придется написать собственный шаблон.

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