下面的ListView应调整其项目,至极呈现与一个TextBlock 的DataTemplate,通过降低字号。最初的FontSize在Style中指定,并且应该是最大值(23pt)。调整字号的ListViewItems当容器调整它的高度
如果项目文本变长,则它最多包含2行。
当窗口调整其高度或者控件的空间比显示项目所需的空间小时,字体大小应该减小,直到所有项目都可以显示。原包装文字应是“展开”如果可能的话
<ListView x:Name="myListView" Grid.Row="0" Grid.Column="0"
Background="White" BorderBrush="Black" BorderThickness="1"
IsHitTestVisible="False"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock MaxHeight="80"
Margin="0,0,0,21"
Text="{Binding}"
TextTrimming="CharacterEllipsis"
TextWrapping="Wrap">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="FontSize" Value="23pt" />
<Setter Property="TextTrimming" Value="CharacterEllipsis" />
<Setter Property="FontFamily" Value="Arial Regular" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Left" />
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
...
</ListView.ItemContainerStyle>
</ListView>
Example Picture showing what i want
我已经尝试过通过使用视框周围的ListView控件来实现的要求,但这将调整高度和宽度,以及(比)==>但文本的可用宽度应是恒定的。
另一种方法是为ListView重写MeasureOverride以减少FontSize,如果需要,控件的listView>可用大小的大小。但是这也没有奏效。
也许一些聪明的人可以帮助我解决这个问题。
最好的问候,
编辑2017年8月17日
我错过了一些必要的信息。 ListView中处于行= 0,列的网格内= 0:
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="300" />
</Grid.ColumnDefinitions>
的栅格单元0,0可以在高度只调整。 ListView将采用整个Cellsize并调整其子元素的FontSize以适应(对于可用的最大FontSize)。 将文本的包装为最多2个文本行也很重要。
我我的答案更新了一些充分的工作代码。 –