gpt4 book ai didi

wpf - Textblock.TextTrimming 在网格内不起作用

转载 作者:行者123 更新时间:2023-12-04 13:46:27 28 4
gpt4 key购买 nike

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

调整窗口大小时,网格会按预期调整大小,但是如果文本超出网格边界,则第三个文本 block 不会被修剪。我的文本框设置为 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>

第二栏代码:
<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" />
</Grid>

最佳答案

为了使它起作用,您需要第二个网格中的最后一列具有 * 大小,否则它将告诉 TextBlock它有尽可能多的空间,即使它没有。自动调整大小的列不会将内容限制在网格的范围内。但是,如果您使用单个 TextBlock 执行此操作,您可能会得到更好的结果。 ,以及多次运行:

<TextBlock FontSize="18" TextTrimming="CharacterEllipsis">
<Run Text="{Binding Path=FeedItems.Count}" FontWeight="SemiBold" />
<Run Text=" items from " />
<Run Text="{Binding Path=Name}" />
</TextBlock>

请注意,您只能从 .NET 4.0 开始绑定(bind) Run.Text。如果您使用的是旧版本的框架,则必须创建自己的 BindableRun,这非常简单,如 here 所示。 .

关于wpf - Textblock.TextTrimming 在网格内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4398914/

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