首页 > 解决方案 > 在文本块 wpf 中每 4 个字符后添加一个空格

问题描述

我有一个卡片文本块,用于向用户显示卡号:

<TextBlock x:Name="ccCard" Text="0000 0000 0000 0000" HorizontalAlignment="Center" 
Foreground="LightGray" FontFamily="Global Monospace" Grid.ColumnSpan="4" Margin="0,0,0,0.4" Width="200"/>

我已经做到了,当一个文本框被写入时,它将它输入到文本块中:

<TextBlock x:Name="ccCard" Text="0000 0000 0000 0000" HorizontalAlignment="Center" 
Foreground="LightGray" FontFamily="Global Monospace" Grid.ColumnSpan="4" Margin="0,0,0,0.4" 
Width="200"/>

我想让它在textblock中每 4 个字符添加一个空格,否则如果它是一个文本框,我可以使用这样的东西:

在文本框中每 4 个字符后自动插入连字符

我怎么能做到这一点?

标签: c#wpftextblock

解决方案


对于任何想知道的人,正如 Çöđěxěŕ 所建议的那样,答案看起来像这样:

ccCard.Text = string.Join(" ", Enumerable.Range(0, txtBox.Text.Length / 4).Select(i => txtBox.Text.Substring(i * 4, 4)));

推荐阅读