C# 如何在不增加WPF长度的情况下,以一组四个字符(按空格分隔)显示文本框的文本

C# 如何在不增加WPF长度的情况下,以一组四个字符(按空格分隔)显示文本框的文本,c#,wpf,C#,Wpf,我必须在一个XamMaskedEditor中以空格分隔的四个字符组显示文本,而不增加原始文本的长度。我的原始文本是0000111100111,但必须显示0000 1111 0000 1111 可能吗 如果是,请告诉我 提前感谢。如果您的输入是静态最大长度(如16位信用卡号),您可以使用DataMode属性并将其设置为“原始”。这样,文本属性的值将是不带填充的输入值 <inf:XamMaskedEditor HorizontalAlignment="Center"

我必须在一个
XamMaskedEditor
中以空格分隔的四个
字符组显示文本,而不增加原始文本的长度。我的原始文本是
0000111100111
,但必须显示
0000 1111 0000 1111

可能吗

如果是,请告诉我


提前感谢。

如果您的输入是静态最大长度(如16位信用卡号),您可以使用DataMode属性并将其设置为“原始”。这样,文本属性的值将是不带填充的输入值

<inf:XamMaskedEditor HorizontalAlignment="Center"
                     VerticalAlignment="Center"
                     Width="150"
                     Mask="#### #### #### ####"
                     DataMode="Raw"
                     Text="{Binding TestTxt, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

在上面的示例中,您的输入只允许数字,如下所示:

1234 5678 9012 3456

但是文本属性的值是


12345678901233456

在您的xaml中使用此转换器,未对其进行测试,但它应该可以正常工作

public class FourLetterGroupConverter : IValueConverter
{     
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        var toConvert = (string)value;

        StringBuilder sb = new StringBuilder();

        for (var i = 0; i < toConvert.Length; i++)
        {
            sb.Append(toConvert[i]);

            if(i != 0 && i%4 ==0)
            {
                sb.Append(" ");
            }
        }

        return sb.ToString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}
公共类FourletGroupConverter:IValueConverter
{     
公共对象转换(对象值、类型targetType、对象参数、字符串语言)
{
var toConvert=(字符串)值;
StringBuilder sb=新的StringBuilder();
对于(变量i=0;i
你的意思是,你想选择不同的字体大小,使长度相同或更小?嗨,我正在使用XamMaskedEditor,希望以四个字符为一组显示我的文本,例如:0000 1111 0011 1100。我想他们在问如何将
.text
设置为“12345678”,但显示
1234 5678
(例如,用于自动格式化信用卡号)。啊,字符的显示可以更宽,但原始字符串不应包含de空格?是的,我希望实现相同的效果。我的原始字符串类似于“12345678”,但希望在XamMaskedEditor 1234 5678中显示