2010-04-11 53 views
3

當我使用下面的代碼它的工作,因爲我使用一個ListBox支持算法FMP財產不ListView控件

<UserControl.Resources> 
    <Style BasedOn="{StaticResource {x:Type ListBox}}" TargetType="{x:Type ListBox}"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
     <Setter Property="Background" Value="Transparent" /> 
    </Style> 
</UserControl.Resources> 

但是,當我使用下面的代碼到ListView我得到一個警告/異常工作

<UserControl.Resources> 
    <Style BasedOn="{StaticResource {x:Type ListView}}" TargetType="{x:Type ListView}"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
     <Setter Property="Background" Value="Transparent" /> 
    </Style> 
</UserControl.Resources> 

「StaticResource reference'System.Windows.Controls.ListView'was not found。」

爲什麼以及如何解決它?我想要一個ListView的功能。

+0

爲什麼你需要'BasedOn = ...'? – Heinzi 2010-04-11 23:53:16

+0

Heinzi看到這個:http://stackoverflow.com/questions/2593042/datatemplates-while-using-theme-does-not-work-wpf :) – 2010-04-12 00:21:47

+0

好的,所以你想要你的風格基於預先存在的風格(取自某個主題)。但是,錯誤消息只是說「ListView沒有預先存在的風格」,所以你應該只需要將'BasedOn = ...''離開即可。 – Heinzi 2010-04-13 21:50:40

回答

3

試試這個:

<Style BasedOn="{StaticResource {x:Type ListBox}}" TargetType="{x:Type ListView}"> 
+0

好主意,我想它回答了我的問題!結果不是我想要的,雖然。 – 2010-04-12 00:24:04

+0

檢查我的答案在http://stackoverflow.com/questions/2593042/datatemplates-while-using -theme - 不 - 不工作WPF/2619309#2619309 – majocha 2010-04-12 00:40:12

2

A ListView不處理演示文稿,它將其委託給其View屬性,該屬性通常爲GridView。嘗試使用GridView類型作爲鍵設置樣式。

+0

有用(和我可以合作的東西)但該解決方案並沒有解決問題:) – 2010-04-11 19:26:54

0

我有同樣的問題。我的場景並不複雜:app1引用了lib1和lib2,lib1定義了listview風格,lib2定義了一個包含listview的用戶控件,並且不知道listview風格。 APP1增加了資源字典:

在LIB2,我這樣定義列表視圖:

在設計時,我得到了錯誤: 靜態資源引用「System.Windows.Controls.ListView」沒有被發現。 但在運行時,它運行良好。 我想這是VS2008的一個bug。 我在VS2010上試過了,它沒有這個設計時錯誤。