【发布时间】:2024-01-19 13:12:01
【问题描述】:
<ItemsControl ItemsSource="{Binding NavModel.NavCommands, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Grid.Column="0" Grid.Row="1"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalContentAlignment="Stretch">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Height="20" Margin="10,10,0,0" TextWrapping="Wrap">
<Hyperlink Command="{Binding Command}">
<Run Text="really really raelly long string"></Run>
</Hyperlink>
</TextBlock>
</DataTemplate>
</ItemsControl>
网格的宽度和高度由各种 * 值定义。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="12*"/>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="77*"/>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="92*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="6*"/>
</Grid.RowDefinitions>
我在没有 ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalContentAlignment="Stretch" 的情况下也试过了。
怎样才能达到我想要的效果?
【问题讨论】:
-
我很确定在
中创建自定义内容将绕过 TextWrapping。也许你可以把 你的 -
嗯。说得通。我想知道是否有办法让文本像我需要的那样在超链接中换行?
-
虽然不完全是您的解决方案*.com/questions/140996/…
-
以前没有遇到过这种情况,请尝试将您的 TextBlock 放在自己的 Grid 中以充当容器。您可以通过简单地在其上放置 MaxWidth 来测试 @kenny 的评论,这肯定会调用包装。更糟糕的是,您可以将宽度绑定到某些东西以做同样的事情,但仍然让调整大小的能力。