WPF TextBlock NoWrap显示两个字符串,而不是一个

本文关键字:一个 字符串 NoWrap TextBlock WPF 两个 显示 | 更新日期: 2023-09-27 18:20:25

我在TextBlock 内部运行时遇到问题

当我创建没有像这样包装的TextBlock时:

<Window x:Class="Test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" x:Name="_window">
    <Grid>
    <TextBlock TextWrapping="NoWrap" Width="100">
      <Run Text="{Binding Value, ElementName=_window}"/>
      </TextBlock>
  </Grid>
</Window>

并将Value赋值为非常长的字符串,如new string('-', (int) 1e6),它显示两行而不是一行。

我应该做些什么来防止它,并且只得到一条线?

附言:没有运行,我无法使用TextBlock

WPF TextBlock NoWrap显示两个字符串,而不是一个

请改用Text。

<TextBlock TextWrapping="NoWrap" Width="100" Text="{Binding Value, ElementName=_window}"/>

您也可以使用TextBlock作为内联

<TextBlock Width="100">
    <Span FontSize="50">
        <TextBlock TextWrapping="NoWrap" Text="{Binding Value, ElementName=_window}"/>
    </Span>
    <Span FontSize="20">
        <TextBlock TextWrapping="NoWrap" Text="{Binding Value, ElementName=_window}"/>
    </Span>
</TextBlock>