c# - TextBlock TextWrapping Wrap 和 NoWrap 相结合,通过 DynamicResource 文本

标签 c# wpf xaml word-wrap dynamicresource

我有多个 TextBlock,其文本是通过 DynamicResource 插入的。它们都设置为 TextWrapping="Wrap"。但是在那些文本字符串中,我有不允许拆分的单词。这些词必须作为一个完整的词保存。

对于 Xaml 中的硬编码文本,通过 Textblock 中的 TextBlock 很容易解决:

<TextBlock TextWrapping="Wrap">
Example text with wrap and <TextBlock TextWrapping="NoWrap" Text=" example text without wrap"/
</TextBlock>

但是当通过 DynamicResource 插入文本时,此解决方案不起作用,因为文本未被解析。

我如何将 nowrap 和 wrap 合并到 DynamicResource Text 中而不将它一个接一个地拆分成多个 TextBlocks?

PS:我现在创建了一个示例来演示我想要的行为(绿色)和失败的尝试(红色、橙色、深红色) 的解决方法:

<StackPanel HorizontalAlignment="Center" Width="80" Orientation="Vertical">
            <TextBlock TextWrapping="Wrap" Foreground="green">
                bla1 bla2 bla3 bla4 <TextBlock TextWrapping="NoWrap" Text="Together(en)"/> bla5 bla6 longWordWhichShouldBreak
            </TextBlock>
            <TextBlock TextWrapping="Wrap" Foreground="red">
                bla1 bla2 bla3 bla4 Together(en) bla5 bla6 longWordWhichShouldBreak
            </TextBlock>
            <TextBlock TextWrapping="Wrap" Foreground="orange">
                bla1 bla2 bla3 bla4&#160;Together(en)&#160;bla5 bla6 longWordWhichShouldBreak
            </TextBlock>
            <TextBlock TextWrapping="WrapWithOverflow" Foreground="DarkRed">
                bla1 bla2 bla3 bla4&#160;Together(en)&#160;bla5 bla6 longWordWhichShouldBreak
            </TextBlock>
        </StackPanel>

Result

最佳答案

使用NO-BREAK SPACE在您的动态文本中。例如:

<TextBlock TextWrapping="Wrap">
        Example text with wrap and example text&#160;without&#160;wrap
</TextBlock>

您可以在需要此行为的那些部分用此字符替换空格:

  Replace(" ", System.Convert.ToChar(160))

关于c# - TextBlock TextWrapping Wrap 和 NoWrap 相结合,通过 DynamicResource 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42485689/

相关文章:

c# - lambda 参数如何映射到 TakeWhile 中?

c# - 出于安全原因,弹出窗口不能隐藏在屏幕边缘

c# - 如何将类绑定(bind)到 WPF AutoCompleteBox?

c# - 在 WPF/MVVM Light 的屏幕上绘制矩形最有效/最快的方法是什么

c# - BindingSource 与 DataGridView 组合框

wpf - 图像的 ScaleTransform

c# - 将对象图写入 XAML 时出现 StackOverFlow 异常

c++ - 无法引用自定义用户控件

wpf - 错误模板设计

c# - 如何使堆栈面板内的按钮展开以用完整个空间?