2010-04-11 40 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上试过了,它没有这个设计时错误。