在WPF ListView中继承ItemContainerStyle的默认样式

时间:2016-02-12 10:55:42

标签: wpf xaml listview

要通过ListView呈现的控件允许正确的Tab键顺序,我已将其添加到ListView控件的顶部:

<ListView.ItemContainerStyle>
    <Style>
        <Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
    </Style>
</ListView.ItemContainerStyle>

哪个适用于标签,但它也会破坏相关列表视图的鼠标悬停风格。

我试图通过继承默认值来取回它:

<ListView.ItemContainerStyle BasedOn="{StaticResource {x:Type ItemContainerStyle}}">
    <Style>
        <Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
    </Style>
</ListView.ItemContainerStyle>

导致构建中断消息&#34;无法在属性元素上设置属性&#34;。

所以我尝试更改项目的mousover样式以匹配样式表中的内容:

<ListView.ItemContainerStyle>
    <Style>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="#90C8E0" />
            </Trigger>
        </Style.Triggers>
        <Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
    </Style>
</ListView.ItemContainerStyle>

并且不会编译,抱怨IsMouseOver和Background不是ItemContainter的可识别属性。

所以我尝试在样式表中为它创建一个样式,然后给它一个键:

<Style x:Key="TabbedListItem" BasedOn="{StaticResource {x:Type ListViewItem}}">
    <Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
</Style>

<ListView.ItemContainerStyle>
    <Style BasedOn="{StaticResource TabbedListItem}" />
</ListView.ItemContainerStyle>

编译,但不会渲染,抛出错误&#34; &#39;为System.Windows.StaticResourceExtension&#39;提供价值。提出异常#34;。

我没有想法。我做错了什么?

0 个答案:

没有答案