我有一个非常简单的WPF ListView,我用它来列出文本块.我希望它垂直滚动,但文本应该换行,这样就没有水平滚动.我见过的所有例子都是过于复杂的DataGridView嵌套解决方案.然而,这似乎是一个简单的用例.这是我目前的代码:
<ListView
Height="Auto"
Width="Auto"
Margin="0"
Name="mLogListView"
FontWeight="Bold"
FontSize="16"
SelectionMode="Single"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
HorizontalContentAlignment="Stretch"/>
Run Code Online (Sandbox Code Playgroud)
我已经尝试设置ScrollViewer.HorizontalScrollBarVisibility和HorizontalContentAlignment属性,但文本只是在控件的末尾运行而不会换行.
每个项目都添加到ListView.Items集合中并且是一个ListViewItem对象.文本设置为项目的Content属性.
以下是负责向列表添加文本时间的代码:
ListViewItem item = new ListViewItem();
item.Content = "Item text is set here, but refuses to wrap in list view!";
mLogListView.Items.Add(item);
Run Code Online (Sandbox Code Playgroud)
谢谢.
Kla*_*s78 15
这应该是你需要的
<ListView Margin="12,23,309,191"
Name="mLogListView"
FontWeight="Bold"
FontSize="16"
SelectionMode="Single"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
HorizontalContentAlignment="Stretch" >
<!-- here set the itemTemplate to a TextBlock that can wraps-->
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=.}" TextWrapping="Wrap"></TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
请注意Text="{Binding Path=.}"等效的语法Text="{Binding}".这称为空绑定语法.
在这种情况下Text绑定到整个ListViewItem对象.当您想要绑定到整个对象项而不是仅绑定到项的单个属性时,空绑定语法很有用.
这对于示例很方便,因为源对象(ListViewItem)的类型为string,您只想绑定到字符串本身.
有关更多信息,请参阅指定值的路径部分中的msdn
我想在 ListView 中查看图像,它默认只显示一列。为了防止这种情况,您可以插入以下代码:
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Margin="0" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
Run Code Online (Sandbox Code Playgroud)
现在显示 ListView,而不是一列,只显示一行:-( 为了防止这种情况,您可以插入这一行代码:
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
Run Code Online (Sandbox Code Playgroud)
所以它可能看起来像这样:
<ListView ItemsSource="{Binding YourItemsSource...}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Border ... and so on ...
Run Code Online (Sandbox Code Playgroud)
我希望,它可以帮助别人;-)