[WPF]:设置滚动条的样式,但ListView滚动条不受样式的影响

时间:2010-04-28 12:53:13

标签: wpf listview scrollbar

我在resourceDictionary中设置滚动条的样式,但没有给它一个键值:

<Style TargetType="{x:Type ScrollBar}">
      ...
</Style>
由于某些原因,只有Scrollbar类型的组件受样式影响。不是ListView组件的滚动条!

我认为所有滚动条都具有相同的样式,因为我没有在样式定义中使用任何键值!

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

默认的WPF行为是您的隐式ScrollBar样式将应用于ListBox中的滚动条。如果您的应用程序中没有发生这种情况,那么有一些事情会覆盖此默认行为。你有一个应用于ListBox的模板吗?

我的测试应用程序证明了默认的样式行为如下:

<Window x:Class="TestScrollBarStyle.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">

<Window.Resources>        
    <Style TargetType="ScrollBar">
        <Setter Property="Background" Value="Red" />
    </Style>        
</Window.Resources>   

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>

    <ScrollViewer x:Name="scroll">
        <Rectangle Height="200" />
    </ScrollViewer>

    <ListBox Grid.Row="1" ScrollViewer.VerticalScrollBarVisibility="Visible">
        <ListBoxItem>Test 1</ListBoxItem>
        <ListBoxItem>Test 2</ListBoxItem>
        <ListBoxItem>Test 3</ListBoxItem>
        <ListBoxItem>Test 4</ListBoxItem>
        <ListBoxItem>Test 5</ListBoxItem>
        <ListBoxItem>Test 6</ListBoxItem>
        <ListBoxItem>Test 7</ListBoxItem>
        <ListBoxItem>Test 8</ListBoxItem>
        <ListBoxItem>Test 9</ListBoxItem>
        <ListBoxItem>Test 10</ListBoxItem>
        <ListBoxItem>Test 11</ListBoxItem>
    </ListBox>

</Grid>