列表视图中的项目不会超出列

时间:2014-01-27 21:22:28

标签: wpf listview

我正在尝试在wpf中创建一个类似于Windows资源管理器的listview。我得到了一切(!),树,导航等,我甚至得到了矩形图。我唯一无法做的就是阻止所选项目超出最后一列(见截图),我的listview-mouseover和selected-items总是在最后一列之外绘制selecteditembackground。

我很感谢每一个答案,这让我发疯了。

我尝试发布问题的图片,但我是新的,我需要10个声誉(不管这是什么)所以我包含了截图的链接。 http://abload.de/img/listviewtwuu5.jpg

编辑:

有一些简单的XAML:

<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
    <ListView Name="MyListView">
        <ListView.View>
            <GridView>
                <GridViewColumn DisplayMemberBinding="{Binding Username}" Width="100"/>
            </GridView>
        </ListView.View>
    </ListView>
</Grid>
</Window>

这里是

背后的代码
Class MainWindow 
 Private Class User
     Public Property Username As String
 End Class

 Sub New()
     InitializeComponent()
     For i As Integer = 0 To 20
         MyListView.Items.Add(New User With {.Username = "User" & i.ToString})
     Next
 End Sub
End Class

这里有截屏http://abload.de/img/listview21pb3o.jpg 正如您在第一个示例(原始Windows资源管理器)中看到的那样,所选项目背景不会超出最后一列,而在我的示例中,selecteditem背景超出并使用listview控件中的所有可用空间。

1 个答案:

答案 0 :(得分:0)

对不起,我考虑过DataGrid,在这个特殊的样式方面提供了比ListView更多的灵活性。现在我没有办法。如果你可以使用DataGrid:只需使用它,它就完全符合你的需要。无需额外的造型。