这也许是一个相当愚蠢的“问题”。我的 WPF 应用程序页面上有一个复选框。例如,当我将复选框的内容属性设置为“复选框内容”时,该框本身放置在文本的左侧。当我将 FlowDirection 设置为“RightToLeft”时,文本放置在左侧,框放置在右侧,如下图所示:
到目前为止一切都很好,对吧?
现在我将内容更改为“CheckBox Content:”(注意冒号)和 FlowDirection“LeftToRight”,一切看起来仍然正常:框 - 文本 - 冒号。现在出现了愚蠢的事情...我将 FlowDirection 设置为“RightToLeft”以首先显示文本,然后显示框,但冒号完全放置在左侧,请参见此图片:
并不是说我无法解决这个问题,而是我必须进入 XAML 文件将标记更改为:
<CheckBox Content=" : CheckBox Content" />
无意冒犯,但这非常荒谬,因为当我现在将 FlowDirection 更改回 LeftToRight 时,顺序是框 - 冒号 - 文本。
我的问题是,有人知道是什么原因造成的吗?或者这应该发生吗?还有其他控件可能会发生这种情况吗?
最佳答案
它按照你所说的去做。我认为您对 FlowDirection 的真正含义感到困惑。 FlowDirection 实际上应该只用于从右到左的语言。阿拉伯语和希伯来语等语言的读法与我们相反。他们从右向左读,所以很自然地读“。”将位于句子的末尾,即最左边的字符。
WPF(和其他 Microsoft 框架)足够聪明,可以理解您的应用程序、计算机和线程都是英文的,因此它们将覆盖 RightToLeft(几乎),但不会覆盖标点符号。
如果您希望您的复选框位于另一侧(并且这是不正确的),您将必须编写自己的模板。
关于wpf - 当 FlowDirection 设置为 RightToLeft 时,为什么 CheckBox Content 中的冒号放置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9366750/