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

标签 c# wpf right-to-left

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

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

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

Demonstration Screen Capture

这是我的应用程序 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>

知道是否有解决方案吗?

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

最佳答案

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

<TextBox Name="textBox1" Text=" 25% הנחה" TextChanged="Textbox1_TextChanged"/>

bool addRtlMark = false;
private void Textbox1_TextChanged(object sender, TextChangedEventArgs e)
{
 if (!addRtlMark)
  {
    addRtlMark = true;
    textBox1.Text = "\u200f" + textBox1.Text.Replace("\u200f", "");
    addRtlMark  = false;
  }
}

关于c# - 处理带有百分比字符的从右到左文本框的 WPF 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60597378/

相关文章:

c# - 根据在 C# 中创建的日期搜索文件

c# - 将 IsAssignableFrom 与 'open' 泛型类型一起使用

c# - XAML 编辑器一直显示 : The member is not recognized or is not accessible

wpf - 如何在 WPF DataGrid 中垂直居中行的内容?

ios - 如何更改 userInterfaceLayoutDirection

android - 如何获取工具栏上使用的 "up"按钮?

java - 使 JLabel html 内容从右到左

c# - 如何删除具有相同相册 ID 的所有图像文件?

c# - 如果它设置了表单的 AcceptButton,我如何自定义按钮?

wpf - <i : Interaction. Behavior> 选项不适用于应用行为