Wpf 自动调整字体大小&;在列表视图中换行文本

Wpf 自动调整字体大小&;在列表视图中换行文本,wpf,listview,autosize,wrappanel,Wpf,Listview,Autosize,Wrappanel,我有一个listview,它可以包含1到10个文本项。ListView必须包含在特定大小的网格中 我希望每个项目能够包装到另一行(我可以正常工作),但当项目最终到达网格区域的底部时,我希望项目以字体调整大小,保持包装的文本&不允许滚动 我可能对WPF要求太多,或者没有很好地解释这一点 <ListView Name="lvWrap" ItemsSource="{Binding Directions}" Style="{DynamicResource ListViewStyle1}"

我有一个listview,它可以包含1到10个文本项。ListView必须包含在特定大小的网格中

我希望每个项目能够包装到另一行(我可以正常工作),但当项目最终到达网格区域的底部时,我希望项目以字体调整大小,保持包装的文本&不允许滚动

我可能对WPF要求太多,或者没有很好地解释这一点

    <ListView Name="lvWrap" ItemsSource="{Binding Directions}" Style="{DynamicResource ListViewStyle1}" FontSize="29">
        <ListView.ItemTemplate>
            <DataTemplate>
                <DockPanel Name="MainGrid" HorizontalAlignment="Stretch">
                    <TextBlock Text="{Binding}" TextWrapping="Wrap"/>
                </DockPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>


这样可以包装每个项目,但底部的项目在屏幕外消失。我不想发生这种事

你要求得不多。。。WPF几乎可以做任何事情。然而,你要求的太多了,而且很可能对这里的用户来说太多了。我所能想象的实现需求的唯一方法是实现一个定制的
面板
,并将其设置为
ListView.ItemsPanel

面板
内,或者更具体地说,
面板
排列覆盖
方法是可以检测到项目已到达可用空间底部的少数位置之一。虽然创建自定义
面板并不太困难,但它也不是一项简单的任务。如果您选择这样做,您可以查看以下链接之一,以便更好地了解如何做到这一点: