如何设置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
宽度长,则文本的其余部分显然不可见。除了对文本进行硬编码之外,还有一种简单的方法可以使其适合吗?
答案 0 :(得分:4)
@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,如果没有设置ItemContainerStyle,它的默认值是Left,这意味着它将使用最小宽度。
答案 1 :(得分:2)
不要将stackpanel用于父元素?并将HorizontalAlignment添加到Textblock。 另外定义itemcontainer样式使用HorizontalContentAlignment to Stretch,您可以轻松找到一些示例。