2014-01-27 45 views
0

我試圖在WPF列表視圖工作方式類似於Windows資源管理器列。我得到了一切(!),樹,導航等,我甚至得到了矩形圖。我唯一不能做的就是防止所選項目超出最後一列(請參見截圖),我的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資源管理器)選定的項目背景不會超出最後一列,而在我的例子中e selecteditem背景將超越並使用listview控件中的所有可用空間。

+1

可能會幫助,如果你發佈了一些XAML或代碼,再現您所描述的問題 - 其實,你更容易,如果你做的就是幫助。嘗試製作能夠編譯並顯示您所描述問題的最小程序,並將其添加到您的問題中。 – Steve

+0

歡迎來到StackOverflow。添加到@Steve所說的內容,請參閱StackOverflow [幫助中心](http:// http:// https://stackoverflow.com/help/mcve)中的[如何創建最小,完整,已測試和可讀的示例] stackoverflow.com/help)尋求幫助。 – Sheridan

+0

只是猜測......如果你在右側添加一個空白的空列,會怎麼樣? – Steve

回答

0

對不起,我腦子裏想的,提供比造型的這個特殊方面的ListView更多的靈活性DataGrid中。現在我看不到方法。如果您可以使用DataGrid,只需使用它即可完成您所需要的功能。沒有額外的造型必要。

+0

謝謝,但我做了一個類似瀏覽器的控制,一切工作正常,除了繪製的項目超出了最後一欄。 DataGrid不是一個選項。我試圖找到一種解決方法,但無論如何感謝 – Isildur

+0

無法重寫ItemContainerStyle並將選定項目的背景綁定到gradientbrush,第一種顏色綁定到組合Columnwidths,第二種顏色是透明的?如果是這樣,有人可以解決這個問題嗎? – Isildur