gpt4 book ai didi

c# - 用连字符包装单词不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:17 25 4
gpt4 key购买 nike

我有一个包含带有连字符的消息的文本 block 。我希望所有包含连字符的单词都被解释为一个真正的单词,如带有不间断空格的单词。我暂时得到了这个:

test test test test Test-
test

我要

test test test test 
Test-test

我觉得连字符是一个单词中用于分隔的特殊字符,这就是为什么我不能将单词换行的原因。但是有什么想法可以做到这一点吗?我尝试使用这个 IsHyphenationEnabled 但我真的不知道他的工作......

!!!注意!!!我不想打断这个词,当带有连字符的词不能插入一行时,我想要一个新行,因为它没有任何空间用于这个词

谢谢大家最好的问候。

最佳答案

这里是一个转换值的示例,仅供显示。

<Grid xmlns:l="clr-namespace:CSharpWPF"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Grid.Resources>
<sys:String x:Key="testString">some string with non-breaking space</sys:String>
<l:HyphenRemover x:Key="HyphenRemover" />
</Grid.Resources>
<StackPanel>
<TextBlock>
<Run Text="Nomal string: " />
<Run Text="{StaticResource testString}" />
</TextBlock>
<TextBlock>
<Run Text="Hyphen removed: " />
<Run Text="{Binding Source={StaticResource testString}, Converter={StaticResource HyphenRemover},Mode=OneWay}" />
</TextBlock>
</StackPanel>
</Grid>

上面的例子是为了说明目的,也可以直接绑定(bind)到文本 block

例如

<TextBlock Text="{Binding Source={StaticResource testString}, Converter={StaticResource HyphenRemover}}" />

HyphenRemover 转换器

namespace CSharpWPF
{
class HyphenRemover : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string text = value as string;
if (!string.IsNullOrWhiteSpace(text))
{
return text.Replace("-", string.Empty);
}
return value;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

结果

result

您可以看到转换器能够在不修改源的情况下修改显示值。

关于c# - 用连字符包装单词不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com