这个矩形是什么以及如何摆脱它?
我只是模仿滚动条:
<Style TargetType="ScrollBar">
<Setter Property="Background" Value="#FF07468B"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ScrollBar">
<Grid x:Name="GridRoot" Width="5" Background="{TemplateBinding Background}">
<Track x:Name="PART_Track" Grid.Row="0" IsDirectionReversed="true" Focusable="false">
<Track.Thumb>
<!-- thumb is defined somewhere -->
<Thumb x:Name="Thumb" Style="{StaticResource ScrollBarThumb}"/>
</Track.Thumb>
<Track.IncreaseRepeatButton>
<RepeatButton Command="ScrollBar.PageDownCommand" Opacity="0" Focusable="false"/>
</Track.IncreaseRepeatButton>
<Track.DecreaseRepeatButton>
<RepeatButton Command="ScrollBar.PageUpCommand" Opacity="0" Focusable="false"/>
</Track.DecreaseRepeatButton>
</Track>
</Grid>
<!-- removed triggers -->
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我怀疑它是ScrollBar
,更像是ListBox
本身。只有在水平滚动条可见时才会出现此问题。
例如,here家伙模板化ScrollViewer
并且您可以看到图像没有人工制品或交叉点(或resizegrip,或其他)。
仅模板滚动条时,是否需要对ListBox
执行某些操作?究竟会是什么?
制作ListBox
背景Red
将产生以下内容:
所以这个矩形是LightGray
,但它来自哪里?
答案 0 :(得分:3)
scrollBar
或窗口中“普通”listBox
的样式是通用的。
您无法根据需要更改样式!这是可能没有人想到它的一个小细节。
为什么会看到那个矩形?
嗯,我猜微软的人有这三种可能性:
1。水平条填充交叉点。
2. 垂直条填充交叉点
3. 或者有一个实心矩形,其颜色与正确的scrollBar相同。
所以,他们决定使用第三种选择。而且正如我所说的,如果没有 更改 滚动条的整体风格,无法更改小细节。也许你可以改变这种风格:http://www.nullskull.com/a/1525/styling-the-wpf-scrollviewer.aspx?:D