标签: texttrimming

从TextBlock中获取显示的文本

我有一个像这样定义的简单TextBlock

<StackPanel>
    <Border Width="106"
            Height="25"
            Margin="6"
            BorderBrush="Black"
            BorderThickness="1"
            HorizontalAlignment="Left">
        <TextBlock Name="myTextBlock"
                   TextTrimming="CharacterEllipsis"
                   Text="TextBlock: Displayed text"/>
    </Border>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

哪个输出像这样

替代文字

这会让我"TextBlock:显示文字"

string text = myTextBlock.Text;
Run Code Online (Sandbox Code Playgroud)

但有没有办法获得实际显示在屏幕上的文字?
含义"TextBlock:显示......"

谢谢

wpf text textblock texttrimming

23
推荐指数
2
解决办法
1万
查看次数

TextTrimming从左边开始

有没有办法TextBlock在左侧指定文本修剪?

我已经设法完成三个场景中的两个(第三个是我需要的场景):

  1. 定期修剪

    <TextBlock 
        VerticalAlignment="Center" 
        Width="80" 
        TextTrimming="WordEllipsis"
        Text="A very long text that requires trimming" />
    
    // Result: "A very long te..."
    
    Run Code Online (Sandbox Code Playgroud)
  2. 左修剪

    <TextBlock 
        VerticalAlignment="Center" 
        Width="80" 
        FlowDirection="RightToLeft"
        TextTrimming="WordEllipsis"
        Text="A very long text that requires trimming." />
    
    // Result: "...A very long te"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 左边修剪文本末尾的位置

    // Desired result: "...uires trimming"
    
    Run Code Online (Sandbox Code Playgroud)

有谁知道这是否可能?谢谢.

silverlight wpf xaml texttrimming

21
推荐指数
2
解决办法
7398
查看次数

使用省略号和冒号进行TextTrimming

这是一个相对简单的问题:

我可以使用以下方法修剪带有省略号的文本:

<TextBlock Text="{Binding}" TextTrimming="CharacterEllipsis"/>
Run Code Online (Sandbox Code Playgroud)

它会给我一些东西:

"这句话太长了"

=>

"这句话我..."

这一切都很棒,但我真正想要的是:

"这句话......:"/"这句话......:"

我正在寻找的是椭圆后面的冒号.有没有一种简单的方法来实现这一目标?

编辑:

对困惑感到抱歉.

我想将默认的省略号字符串从'...'更改为'...:'.同样,我将在文本字符串本身中包含一个冒号.这样,我将始终显示冒号.同样,在任何情况下,一切都应该在一条线上.

这里有几个可以接受的结果:

足够短:

方式太......

wpf texttrimming

21
推荐指数
1
解决办法
3万
查看次数

修剪文本时显示工具提示

  <TextBlock Width="100" Text="The quick brown fox jumps over the lazy dog" TextTrimming="WordEllipsis">
     <TextBlock.ToolTip>
        <ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}">
           <TextBlock Text="{Binding Text}"/>
        </ToolTip>
     </TextBlock.ToolTip>
  </TextBlock>
Run Code Online (Sandbox Code Playgroud)

如何ToolTip仅在文本修剪时显示?就像windows desktp快捷方式图标一样.

c# wpf xaml tooltip texttrimming

18
推荐指数
5
解决办法
1万
查看次数

TextBlock中的内联对象,TextTrimming = CharacterEllipsis或WordEllipsis

如果您运行此代码并最小化/最大化窗口的宽度

<TextBlock TextTrimming="WordEllipsis" >
    <Run Text="I want that this rectangle will be placed "/>
    <Rectangle Fill="Black" Width="20" Height="10" />
    <Run Text=" here when I minimize width of the window"/>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

你会看到Rectange会转移到左侧. 在此输入图像描述 在此输入图像描述

是WPF中的错误吗?

wpf textblock texttrimming

10
推荐指数
1
解决办法
1146
查看次数

WPF:ContentPresenter上的TextTrimming

有没有一种简单的方法可以让TextTrimming与ContentPresenter一起使用?

我已经将TextBlock和AccessText的样式设置为将TextTrimming设置为CharacterEllipsis,但是ContentPresenter没有选择它.我可以将ContentPresenter更改为AccessText或TextBlock并将其设置在那里,但模板只处理文本内容.

有什么建议?

谢谢!

.net c# wpf contentpresenter texttrimming

9
推荐指数
2
解决办法
3755
查看次数

Textblock.TextTrimming在网格内不起作用

我的布局有一个3列网格,每个网格的宽度都设置为Width="*".对于中间(第二)网格,我有另外3列网格,每个网格包含它自己的文本块,并且列网格宽度再次设置为Width="*".

调整窗口大小时,网格会按预期调整大小,但如果文本超出网格边界,则第3个文本块不会被修剪.我有文本框设置TextTrimming="WordEllipsis"TextWrapping="Wrap",并且由于某种原因没有强制执行属性.

这是我的一些代码:

布局网格:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition MinWidth="150" MaxWidth="300" Width="1*" />
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition MinWidth="150" MaxWidth="500" Width="1*" />
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="2*"/>
    </Grid.ColumnDefinitions>
</Grid>
Run Code Online (Sandbox Code Playgroud)

第二列代码:

<Grid Grid.Column="2" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="5" Width="Auto">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

    <TextBlock Text="{Binding Path=FeedItems.Count}" Foreground="White" FontSize="18" Width="Auto" FontWeight="SemiBold" />
    <TextBlock Text=" items from " Foreground="White" FontSize="18" Width="Auto" Grid.Column="1" />
    <TextBlock Text="{Binding Path=Name}" Foreground="White" FontSize="18" Grid.Column="2" TextTrimming="CharacterEllipsis" HorizontalAlignment="Left" Width="Auto" TextWrapping="NoWrap" ClipToBounds="True" /> …
Run Code Online (Sandbox Code Playgroud)

wpf grid gridview textblock texttrimming

8
推荐指数
1
解决办法
8722
查看次数

如何在WPF ComboBox中正确显示太长的文本

我有一个ComboBox,显示各种长度的文本.对于不长的文本,没有问题.对于长度超过ComboBox宽度的文本,我想修剪文本并在末尾添加"..."(省略号)以正确显示它们.底线是我不想改变ComboBox的宽度.有谁知道如何做到这一点?

wpf combobox texttrimming

8
推荐指数
2
解决办法
7830
查看次数

XAML - TextTrimming 不适用于 LineBreaks?

为什么 TextTrimming 对第一个 TextBlock 有效,而对第二个 TextBlock 无效?我在我的 xaml 上使用 LineBreaks,这是我需要显示的文本的一部分。

代码:

<Window x:Class="WpfApplication2.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">
<Grid VerticalAlignment="Center">
    <StackPanel>
        <TextBlock TextTrimming="WordEllipsis" TextWrapping="Wrap" Width="20" Height="20" Background="Yellow">
            1 2 3 4 5
        </TextBlock>

        <TextBlock TextTrimming="WordEllipsis" TextWrapping="Wrap" Width="20" Height="20" Background="Aqua">
            1
            <LineBreak/>
            2
            <LineBreak/>
            3
            <LineBreak/>
            4
            <LineBreak/>
            5
        </TextBlock>
    </StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

c# wpf xaml texttrimming

5
推荐指数
1
解决办法
611
查看次数

ComboBox TextWrap绑定

我有以下ComboBox

<ComboBox x:Name="TaskText" Text="{Binding TaskNameBinding}" ItemsSource="{Binding 
    taskList, ElementName=MainWin}" SelectedValuePath="_id" DisplayMemberPath="_name" 
    Background="Yellow" Padding="0" Margin="0" BorderThickness="0" Width="90"/>
Run Code Online (Sandbox Code Playgroud)

我希望文字环绕适用于本组合框,并遵循代码片段从答案在这里

<ComboBox x:Name="TaskText" ItemsSource="{Binding taskList, ElementName=MainWin}" 
    SelectedValuePath="_id" DisplayMemberPath="_name" Background="Yellow" Padding="0" 
    Margin="0" BorderThickness="0" Width="90">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding TaskNameBinding}" 
                TextTrimming="CharacterEllipsis" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)

但是这个模板打破了绑定,组合框没有显示任何值.任何帮助,将不胜感激

wpf xaml combobox texttrimming

3
推荐指数
1
解决办法
5831
查看次数