2009-08-31 3 views
2

this question을 묻는 질문을 한 후 좀 더 일반적인 질문을해야한다는 것을 깨달았습니다. 그래서, 여기에 간다 :WPF에서 사용자 정의 컨트롤에 스크롤바를 추가하는 방법은 무엇입니까?

WPF에서는 사용자 정의 Panel 파생 컨트롤을 만들고 있습니다. 그 컨트롤에 나는 수평 및 수직 스크롤바를 추가하고 그들 자신을 제어하고 싶다. (& min/max/value/pagesize를 얻는다.) 어떻게해야합니까?

이것은 WPF와의 첫 만남이며 아직 템플릿 및 스타일에 익숙하지 않아 답변이 있는지 또는 다른 곳에서 있을지 여부를 알 수 없습니다.

답변

2

예. 대답은 패널에 있지 않고 ScrollViewer에 있습니다. 패널이 스크롤 막대를 처리해서는 안됩니다. ScrollViewer로 패널을 측정하고 정렬하십시오. 그래서 시각적 트리 다음, 먼저 패널에서 ScrollViewer이 포함됩니다 :

<ScrollViewer> 
     <cc:YourPanel/> 
    </ScrollViewer> 

당신의 ScrollViewer를 제어하려면

, 당신은 아마 그것에서 상속 또는 템플릿을 사용자 정의 중 하나를 원할 것입니다.

+0

문제는 - 내 컨트롤이 크기를 변경하지 않을 수도 있습니다 **. ScrollViewer는 하위 컨트롤의 크기를 확인하는 것을 기반으로합니다. –

+0

안녕 Vilx,이 문제를 해결 했습니까? 나는 같은 ..에 들어갔다. –

2

좋아, 찾았습니다! 세 단계 :

  1. 사용자 지정 컨트롤에 System.Windows.Controls.Primitives.IScrollInfo 구현;
  2. 사용자 지정 컨트롤을 ScrollViewer에 추가하십시오.
  3. ScrollViewerCanContentScroll 속성을 True으로 설정하십시오.

Voila!

관련 문제