处理带有百分比字符的从右到左文本框的 WPF 问题

Nir*_*eld 6 c# wpf right-to-left

我认为在处理百分号时 WPF 和从右到左输入存在问题(可能也适用于类似的符号)。

当 TextBox 是从右到左的并且文本开头没有希伯来字符时,百分号会出现在数字的错误一侧。

您可以在此视频中看到异常行为:

演示屏幕截图

这是我的应用程序 XAML(如您所见,其中没有任何内容):

<Window x:Class="HebrewTextTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow">
    <Grid FlowDirection="RightToLeft" Margin="10">
        <TextBox Text=" 25% ????"/>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

知道是否有解决方案吗?

请注意,我对文本没有任何控制权,因为用户输入...

Mig*_*ira 1

在文本框文本更改事件中,向文本添加从右到左的标记:

\n\n
<TextBox Name="textBox1" Text=" 25% \xd7\x94\xd7\xa0\xd7\x97\xd7\x94" TextChanged="Textbox1_TextChanged"/>\n\nbool addRtlMark = false;\nprivate void Textbox1_TextChanged(object sender, TextChangedEventArgs e)\n{\n if (!addRtlMark)\n  {\n    addRtlMark = true;\n    textBox1.Text = "\\u200f" + textBox1.Text.Replace("\\u200f", "");\n    addRtlMark  = false;\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n