2015-01-29 3 views
1

Как я могу ссылаться и изменять настройки для ScrollViewer компонента WebBrowser формы C#/WPF/XAML из кода C# для поддержки?Как получить доступ к ScrollViewer компонента WPB WebBrowser

  <WebBrowser ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
         ScrollViewer.VerticalScrollBarVisibility="Disabled" 
         ScrollViewer.CanContentScroll="False" 
         HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
         Name="BrowserForm" /> 

Например, следующий не определен:

this.BrowserForm.ScrollViewer.HorizontalScrollBarVisibility 

Я пытался получить доступ к ScrollViewer из VisualTreeHelper, но следующие возвращает 0:

VisualTreeHelper.GetChild(this.BrowserForm, 0) 
+0

Вы уверены, что ваши попытки доступа к ScrollViewer произошли после загрузки WebBrowser? Например ... если вы внедрили событие «Загружено» вашего WebBrowser ... и поместили там код ... он все еще не работает? –

+0

Он не будет определяться, потому что те, которые являются прикрепленными свойствами. Дайте мне секунду, чтобы убедиться, что у меня есть правильный синтаксис, и я покажу вам, как это сделать. – BradleyDotNET

ответ

2

Этот синтаксис Безразлично» т, потому что вы устанавливаете прилагаемое имущество (MSDN).

Чтобы установить его в коде, вы должны использовать статический метод, определенный классом определения собственности, в данном случае ScrollViewer.SetHorizontalScrollBarVisibility

ScrollViewer.SetHorizontalScrollBarVisibility(MyBrowser, ScrollBarVisibility.Visible); 

Примечание:WebBrowser не появляется на самом деле быть затронуты по этому свойству, в XAML или в коде, но это понятие правильно. Вы можете попробовать обернуть ваш WebBrowser внутри ScrollViewer, если вы хотите больше контролировать прокрутку.

+0

Элемент управления «WebBrowser» не является родным WPF, а скорее «внутренне создает собственный элемент управления ActiveX WebBrowser» (с [MSDN] (https://msdn.microsoft.com/en-us/library/system.windows.controls. webbrowser% 28v = vs.110% 29.aspx)), поэтому существует целый набор функций WPF, которые он не поддерживает (непрозрачность, трансформирует и т. д.). –

+0

Кроме того, те специфические свойства 'ScrollViewer' не должны устанавливаться в коде, поэтому их установка в XAML совершенно правильна (просто не для элемента управления WebBrowser по причинам, упомянутым выше). Например, если элемент управления @ George был «ListBox», было бы неплохо установить прикрепленное свойство «ScrollViewer.VerticalScrollBarVisibility» в этом элементе, чтобы повлиять на внутренний элемент 'ScrollViewer'. На самом деле, это хороший способ удаления полос прокрутки из списка без необходимости изменения его шаблона управления. –

+0

@StevenRands согласились, я укажу, что код, который я предоставил, предназначен для его установки * в коде *. Конечно, метод XAML также действителен. – BradleyDotNET

Смежные вопросы