2015-01-29 3 views
1

Backing C# 코드에서 C#/WPF/XAML 폼의 WebBrowser 구성 요소의 ScrollViewer 설정을 참조하고 변경할 수 있습니까?WPF WebBrowser 구성 요소의 ScrollViewer에 액세스하는 방법

this.BrowserForm.ScrollViewer.HorizontalScrollBarVisibility 

내가 VisualTreeHelper에서 ScrollViewer에 액세스하려고했으나 다음 반환 0 :

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

는 예를 들어, 다음은 정의되지

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

WebBrowser가로드 된 후 ScrollViewer에 액세스하려는 시도가 발생 했습니까? 예를 들어 ... WebBrowser의 "로드 된"이벤트를 구현하고 코드를 여기에 배치하면 여전히 작동하지 않습니까? –

+0

첨부 된 속성이므로 정의되지 않습니다. 올바른 구문을 사용하는지 잠시만 기다려주세요. 어떻게해야하는지 알려 드리겠습니다. – BradleyDotNET

답변

2

구문 '케이 그게 속성이 (MSDN)으로 설정되어 있기 때문에 작업하지 않습니다.WebBrowser가 나타나지 실제로 영향을받을 :

은 참고 ScrollViewer.SetHorizontalScrollBarVisibility

ScrollViewer.SetHorizontalScrollBarVisibility(MyBrowser, ScrollBarVisibility.Visible); 

이 경우, 당신은 속성을 정의하는 클래스에 의해 정의 된 정적 방법을 활용해야 할 코드에 그것을 를 설정하려면 이 속성에 따라 XAML 또는 코드에서이 개념은 입니다. 스크롤을보다 잘 제어하려면 을 ScrollViewer 안에 넣으십시오.

+0

'WebBrowser' 컨트롤은 WPF- 네이티브가 아니라 "내부적으로 네이티브 WebBrowser ActiveX 컨트롤을 인스턴스화합니다."([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 요소에 영향을주기 위해 해당 요소에 연결된 ScrollViewer.VerticalScrollBarVisibility 속성을 설정하는 것이 좋습니다. 사실 그것은 컨트롤 템플릿을 변경할 필요없이 목록 상자에서 스크롤 막대를 제거하는 좋은 방법입니다. –

+0

@StevenRands가 동의 했으므로 제공된 코드는 코드 *로 설정하는 것입니다. 물론 XAML 메서드도 유효합니다. – BradleyDotNET

관련 문제