2012-02-20 49 views
2

放置错误这也许是一个相当愚蠢的“问题”。我在WPF应用程序的页面上有一个CheckBox。例如,当我将CheckBox的Content-property设置为“CheckBox Content”时,该框本身放置在文本左侧。当我设置的FlowDirection“从右至左”的文本放在左边和右边的框,你可以在下面的图片看到:为什么结肠复选框内容时的FlowDirection设置为从右至左

Correct Content Layout

到目前为止sgood,对不对?

现在我改变其内容为“复选框内容:”(注意冒号)和的FlowDirection“LeftToRight”,一切看起来还是正常:箱 - 文字 - 结肠。现在到了愚蠢的东西...我设置了的FlowDirection为“从右至左”先,然后框具有文本,但结肠完全放在左边,看到这个图片:

enter image description here

这并不是说我不解决这个问题,但我必须走在XAML文件的标签更改为:

<CheckBox Content=" : CheckBox Content" /> 

没有违法,但这是很荒谬的,因为当我现在改变的FlowDirection回LeftToRight,订单是box - 冒号文本。

问题是,没有任何人有任何想法是什么原因造成的?或者这是否应该发生?有没有其他控制这可能发生?

回答

2

它做什么,你告诉它。我认为你对FlowDirection的真正含义感到困惑。 FlowDirection确实应该只用于右至左语言。像阿拉伯语和希伯来语这样的语言与我们相反。他们很自然地从右向左读“。”将处于最左边角色的句子结尾。

WPF(和其他微软框架)有足够的智慧来了解你的应用程序,计算机,和线程都在英语,所以他们将覆盖从右至左(以及几乎),但没有标点符号。

如果你希望你的复选框,可以在另一边(而且是不正确的),你将不得不写自己的模板。

+0

非常好的答案,现在我明白了。我也可以放置一个TextBlock和一个带有空白内容的复选框,只是为了让它成为最简单的方法。但如果确实需要,您的解决方案似乎是最好的! :) – Abbas 2012-02-20 19:23:34

+0

@Abbas如果你这样做,然后单击“TextBlock”中的文本将不会检查“CheckBox”,这与预期行为相反 – RJFalconer 2015-08-19 14:45:04