gpt4 book ai didi

c# - WPF,学习样式滚动条

转载 作者:行者123 更新时间:2023-11-30 20:43:50 25 4
gpt4 key购买 nike

我目前正处于(对我来说相当陡峭的)WPF 和样式的学习曲线中。我设法设置了应用程序中使用的大部分控件的样式,但现在我碰壁了:我想设置滚动条的样式。

我读了一堆关于这个主题的文档

所以是时候练习了。我之前的实验是如何开始的,只是在控件上设置样式,运行应用程序,查看我创建的可怕作品,然后从那里开始。

虽然我似乎无法开始使用滚动条。

例如,当我在我的 Styles.xaml 中添加以下样式时(它在我的 Window.Resources 中被正确引用,按钮、TextBlocks、Groupboxes 等的所有其他样式,以这种方式工作得很好)

<Style TargetType="{x:Type Thumb}">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Focusable" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border
CornerRadius="0"
Background="Chartreuse"
BorderBrush="Red"
BorderThickness="15" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

当我运行我的应用程序时,它不会以任何方式反射(reflect)。我尝试了几种样式(使用 TargetType Thumb、TargetType RepeatButton 等复制粘贴示例)。

我是否需要滚动查看器 + 滚动条 + 重复按钮 + 缩略图的完整 样式定义才能获得我的第一个视觉结果?

我想从更改 Thumbs 和 Scrollbar 本身开始,只是更改外观。我不知道如何开始,然后从随机博客复制/粘贴 300 行 xaml,这导致我完全迷失了......

希望一些 WPF 风格的魔术师能给我指明正确的方向。如前所述:最好是一步一步的缓慢路线,这样我才能真正让自己相信我明白我在做什么:)。

最佳答案

所以如果我们去看看default style templates你会看到一个硬引用;

Thumb Style="{StaticResource ScrollBarThumb}"

因此,您可以通过多种方式之一覆盖它正在使用的 x:Key 资源,或者您可以设置包含 Thumb 的整个样式模板的样式并从那里合并它。如果您想要引用(尽管是针对 Silverlight 的),我可以将我几年前做的许多主题之一的源代码发给您,您可以根据需要深入研究,因为上面没有 NDA,您可以查看输出 here .其中,一旦您了解了 xaml,您就不会在意它是 SL、WPF、WP 还是其他什么....

无论如何,为了立即为您解决问题,您可以在实例中重写该资源,例如(伪);

<ScrollViewer>
<ScrollViewer.Resources>
<Style x:Key="ScrollBarThumb" TargetType="{x:Type Thumb}">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Focusable" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border
CornerRadius="0"
Background="Chartreuse"
BorderBrush="Red"
BorderThickness="15" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ScrollViewer.Resources>
</ScrollViewer>

希望这有帮助,干杯。

关于c# - WPF,学习样式滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com