TextBlock适合ListView中的文本
TextBlock fit text in ListView
如何设置 TextBlock
的长度使其适合 ListViewItem
?
这是我的 xaml:
<ListView x:Name="flyList" BorderThickness="0" ItemsSource="{Binding}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Border BorderThickness="0,0,0,1" BorderBrush="#FF7C7C7C">
<TextBlock Text="{Binding}" Tapped="TextBlock_Tapped" SelectionHighlightColor="#FF8F8F8F">
<ToolTipService.ToolTip>
<ToolTip Name="tip1" Content="Click to copy signal to clipboard."/>
</ToolTipService.ToolTip>
</TextBlock>
</Border>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
如果文本长度超过ListViewItem
宽度,则文本的其余部分显然不可见。除了对文本进行硬编码之外,是否有一种简单的方法使其适合它?
不要为父元素使用堆栈面板?并将 HorizontalAlignment 添加到 Textblock。
否则定义 itemcontainer 样式使用 HorizontalContentAlignment 到 Stretch 你可以很容易地找到一些例子。
@CETINKAYA Ayta Ozden 有一个很好的解决方法,但我想我应该给你一个代码来解释。
首先是设置ItemContainerStyle,使用代码:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment"
Value="Stretch"></Setter>
</Style>
</ListView.ItemContainerStyle>
并将 StackPanel 替换为 Grid。
并将 TextWrapping="Wrap"
添加到 TextBlock。 @WPInfo 谢谢你的方式。
如果您设置了最小宽度的 StackPanel,并且您没有设置默认为 Left 的 ItemContainerStyle,这意味着它将使用最小宽度。
如何设置 TextBlock
的长度使其适合 ListViewItem
?
这是我的 xaml:
<ListView x:Name="flyList" BorderThickness="0" ItemsSource="{Binding}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Border BorderThickness="0,0,0,1" BorderBrush="#FF7C7C7C">
<TextBlock Text="{Binding}" Tapped="TextBlock_Tapped" SelectionHighlightColor="#FF8F8F8F">
<ToolTipService.ToolTip>
<ToolTip Name="tip1" Content="Click to copy signal to clipboard."/>
</ToolTipService.ToolTip>
</TextBlock>
</Border>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
如果文本长度超过ListViewItem
宽度,则文本的其余部分显然不可见。除了对文本进行硬编码之外,是否有一种简单的方法使其适合它?
不要为父元素使用堆栈面板?并将 HorizontalAlignment 添加到 Textblock。 否则定义 itemcontainer 样式使用 HorizontalContentAlignment 到 Stretch 你可以很容易地找到一些例子。
@CETINKAYA Ayta Ozden 有一个很好的解决方法,但我想我应该给你一个代码来解释。
首先是设置ItemContainerStyle,使用代码:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment"
Value="Stretch"></Setter>
</Style>
</ListView.ItemContainerStyle>
并将 StackPanel 替换为 Grid。
并将 TextWrapping="Wrap"
添加到 TextBlock。 @WPInfo 谢谢你的方式。
如果您设置了最小宽度的 StackPanel,并且您没有设置默认为 Left 的 ItemContainerStyle,这意味着它将使用最小宽度。