C# 如何访问WPF WebBrowser组件的ScrollViewer

C# 如何访问WPF WebBrowser组件的ScrollViewer,c#,wpf,xaml,C#,Wpf,Xaml,如何从支持的C代码中引用和更改C#/WPF/XAML表单的WebBrowser组件的ScrollViewer设置 我尝试从VisualTreeHelper访问ScrollViewer,但以下返回0: VisualTreeHelper.GetChild(this.BrowserForm, 0) 该语法不起作用,因为您正在设置一个附加属性() 要在代码中设置它,必须使用由定义属性的类定义的静态方法,在本例中是ScrollViewer.SetHorizontalScrollBarVisibility

如何从支持的C代码中引用和更改C#/WPF/XAML表单的WebBrowser组件的ScrollViewer设置

我尝试从VisualTreeHelper访问ScrollViewer,但以下返回0:

VisualTreeHelper.GetChild(this.BrowserForm, 0)

该语法不起作用,因为您正在设置一个附加属性()

要在代码中设置它,必须使用由定义属性的类定义的静态方法,在本例中是
ScrollViewer.SetHorizontalScrollBarVisibility

ScrollViewer.SetHorizontalScrollBarVisibility(MyBrowser, ScrollBarVisibility.Visible);

注意:
WebBrowser
在XAML或代码中似乎实际上不受此属性的影响,但这一概念是正确的。如果希望对滚动进行更多控制,您可能需要尝试将
WebBrowser
包装在
ScrollViewer
中。

您确定在加载WebBrowser后尝试访问ScrollViewer吗?例如如果您实现了WebBrowser的“已加载”事件。。。然后把代码放在那里。。。它仍然不起作用吗?它不会被定义,因为这些是附加属性。请给我一点时间,以确保我有正确的语法,我将向您展示如何执行此操作。
WebBrowser
控件不是WPF本机控件,而是“在内部实例化本机WebBrowser ActiveX控件”(来自),因此它不支持一大堆WPF功能(不透明度、转换等),
ScrollViewer
的那些特定属性不必在代码中设置,在XAML中设置它们是完全有效的(只是由于上述原因,
WebBrowser
控件不需要设置这些属性)。例如,如果@George的控件是一个
列表框
,则可以在该元素上设置
ScrollViewer.VerticalScrollBarVisibility
附加属性,以影响内部
ScrollViewer
元素。事实上,这是一种从列表框中删除滚动条的好方法,无需更改其控件模板。@StevenRands同意,我将指定我提供的代码用于在代码中设置滚动条。当然,XAML方法也是有效的。
VisualTreeHelper.GetChild(this.BrowserForm, 0)
ScrollViewer.SetHorizontalScrollBarVisibility(MyBrowser, ScrollBarVisibility.Visible);