BasedOn属性不与ListView一起使用

时间:2010-04-11 18:01:42

标签: c# wpf

当我使用以下代码时,它可以工作,因为我使用的是ListBox

<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引用'System.Windows.Controls.ListView'。”

为什么以及如何解决它?我想要ListView的功能。

3 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:2)

ListView不处理演示文稿,它会将其委托给View属性,该属性通常为GridView。尝试使用GridView类型作为键设置样式。

答案 2 :(得分:0)

我遇到了同样的问题。我的场景有点复杂:app1引用了lib1和lib2,lib1定义了listview样式,lib2定义了一个包含listview的用户控件,并且不知道listview样式。 app1添加资源字典:

在lib2中,我定义了这样的列表视图:    

在设计时,我收到了错误: 未找到StaticResource引用'System.Windows.Controls.ListView'。 但在运行时,它运作良好。 我想这是VS2008的一个bug。 我在VS2010上尝试过它没有这个设计时错误。