gpt4 book ai didi

c# - 以编程方式设置滚动条的宽度

转载 作者:行者123 更新时间:2023-11-30 17:39:37 26 4
gpt4 key购买 nike

我有一个应用程序,它在 Windows 上使用 WPF 作为工具包框架。现在我想以编程方式为我的 ScrollViewers 设置滚动条的宽度。我找到了许多通过 XAML 设置宽度的示例。但是如何以编程方式定义滚动条的宽度?

不幸的是,我在 ScrollViewer 上找不到任何属性或方法来设置滚动条的宽度。

var viewer = new ScrollViewer();
viewer.MagicProperty = 42; // Does not exist

不幸的是,SystemParameters 上的所有属性都是只读的。

VerticalScrollBarWidth.VerticalScrollBarWidth = 42; // Read-only

编辑:WPF 只是我的应用程序中的多个工具包框架之一。我使用自定义 GUI 抽象层来支持 Windows (WPF)、Linux (GTK#) 和 MacOS X( future )。我的用户界面以独立于操作系统的方式封装。因此,使用 XAML 毫无意义。

最佳答案

最简单的方法是设置x:Name 属性,然后您就可以在代码中访问ScrollViewer

或使用绑定(bind):http://www.tutorialspoint.com/wpf/wpf_data_binding.htm

如果您想使用多个 ScrollViewers 进行操作并设置相同的值,

Binding 将很有用。

编辑:您可以在代码中创建 ScrollViewer,然后设置其参数。但是您需要一种方法将其插入 VisualTree 以及其他控件中。所以你需要获取一些容器的实例,然后使用它的 Children.Add() 方法

不过,我真的建议您尽可能多地使用 XAML,并将您的代码留给应用程序逻辑,而不是 UI 构建。

编辑 2:你能试试吗:

            Style myStyle = new Style(typeof(ScrollBar));
myStyle.Setters.Add(new Setter(WidthProperty, 40));

scrollViewer.Style = myStyle;

编辑 3:我找到了解决办法。您可以添加 ResourceDictionary.xaml 并将此样式添加到其中:

 <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
<Setter Property="MinWidth" Value="35" />
<Setter Property="Width" Value="35" />
</Style>

然后像这样在运行时加载它:

Resources.MergedDictionaries.Add(Application.LoadComponent(new Uri(@"Dictionary.xaml", UriKind.Relative)) as
ResourceDictionary);

关于c# - 以编程方式设置滚动条的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35273501/

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