感谢您查看我的问题。我想在我的ScrollViewer中自定义ScrollBar。没问题。可是等等。当我这样做时,它也会更改内部控件的ScrollBar。我不想影响那些ScrollBars。如何指定正确的范围?
这是几乎可行的XAML:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ScrollViewer>
<ScrollViewer.Resources>
<Style TargetType="{x:Type ScrollBar}">
<Setter Property="Background" Value="Red" />
</Style>
</ScrollViewer.Resources>
<TextBox Height="200" Width="200" VerticalScrollBarVisibility="Visible" />
</ScrollViewer>
</Page>
答案 0 :(得分:2)
因为ScrollViewer只支持一个子对象,所以我添加了一个Grid来包装文本框。 在我的例子中,我应用了覆盖样式使文本框变为蓝色。 如果从Grid中删除整个setter,则会得到默认值。
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ScrollViewer>
<ScrollViewer.Resources>
<Style TargetType="{x:Type ScrollBar}">
<Setter Property="Background" Value="Red" />
</Style>
</ScrollViewer.Resources>
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type ScrollBar}">
<!-- remove setter to get default -->
<Setter Property="Background" Value="Blue" />
</Style>
</Grid.Resources>
<TextBox Height="200" Width="200" VerticalScrollBarVisibility="Visible" />
</Grid>
</ScrollViewer>
</Grid>
</Page>