2010-04-28 8 views
5

ich eine Scrollbar in einem Resource bin Styling ohne ihnen einen Schlüsselwert zu geben:[WPF]: Styling eine Scrollbar, aber die Listview-Scrollbar ist nicht betroffen von der Art

<Style TargetType="{x:Type ScrollBar}"> 
     ... 
</Style> 

Bur aus irgendeinem Grunde nur eine Komponente vom Typ Scrollbar sind vom Stil betroffen. Nicht die Bildlaufleiste der ListView-Komponente!

Ich würde denken, dass alle Bildlaufleisten den gleichen Stil haben würden, da ich keinen Schlüsselwert in der Stildefinition verwende!

Irgendwelche Ideen?

+0

Es soll wie Sie erklärten, deshalb denke ich, dass das falsche Verhalten sonst Ursache von etwas ist. Können Sie den Code Ihrer ListView-Komponente posten? – Drake

Antwort

1

Das standardmäßige WPF-Verhalten ist, dass der implizite ScrollBar-Stil auf die Bildlaufleisten in der ListBox angewendet werden würde. Wenn dies in Ihrer Anwendung nicht auftritt, überschreibt dieses Standardverhalten etwas. Haben Sie eine Vorlage auf die ListBox angewendet?

Mein Test-App ist unter dem Standard-Styling Verhalten zu beweisen, aus:

<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>