【问题标题】:WPF TextBlock NoWrap shows two strings instead of oneWPF TextBlock NoWrap 显示两个字符串而不是一个
【发布时间】:2014-10-27 20:44:48
【问题描述】:

我在 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>

并赋值很长的字符串,如new string('-', (int) 1e6),它显示两行插入一。

我应该怎么做才能防止它并得到准确的一行?

附:我不能在没有 Run 的情况下使用 TextBlock

【问题讨论】:

    标签: c# wpf textblock nowrap


    【解决方案1】:

    改用文本。

    <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>
    

    【讨论】:

    • 不,我不能使用 smiple TextBlock,因为我需要突出显示文本
    • @PG_LoLo 你可以使用 TextBlock 作为内联,而不是运行。我已经更新了上面的答案,看看。
    • 好的,我会考虑这个技巧,但是为什么 不能正常工作?
    • @PG_LoLo 我希望我能给你一个解释 :) 似乎这是一个错误,不确定。
    猜你喜欢
    • 1970-01-01
    • 2017-06-24
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多