2012-05-25 2 views
1

사용자 지정 컨트롤에 대한 ISrollInfo 인터페이스를 구현하려고합니다. 간단히 말해, Canvas 아래에 사용자 정의 컨트롤에 레이블이 있습니다. 사용자 정의 컨트롤을 스크롤 할 때 레이블을 "제 위치에 유지"하고 싶습니다. 즉, 레이블은 스크롤 오프셋에 관계없이 항상 표시되어야합니다.WPF IScrollInfo 레이블의 위치 고정

이제, 테스트 나는이 샘플 코드

protected override Size MeasureOverride(Size constraint) 
    { 
     return new Size(1000, 50); 
    } 

    protected override Size ArrangeOverride(Size arrangeBounds) 
    { 
     double x = 50; 
     double y = 50; 

     label1.Arrange(new Rect(new Point(x, y), new Size(1000, 50))); 
     return arrangeBounds; 
    } 

나는 (내 컨트롤이있는 ScrollViewer 내부에 넣어) 컨트롤을 테스트 할 때 레이블이 숨겨져 추가에 (내가 스크롤바를 사용 이전과 이후) . ArrangeOverride에 대한 재정의를 제거하면 레이블이 나타나고 스크롤 막대를 사용할 때 스크롤됩니다.

제가 누락 된 부분에 대한 아이디어가 있습니까?

+0

찾았습니다. 내 ArrangeOverride는 UserControl에 있는데, 레이블을 구체적으로 만 정렬하면 캔버스가 정렬되지 않습니다 (즉, 위치 및 크기가 설정되지 않음). 자, 레이블이 캔버스에 있기 때문에, 당신은 그것을 볼 수 없습니다. – States

답변

0

발견했습니다. 내 ArrangeOverride는 UserControl에 있는데, 레이블을 구체적으로 만 정렬하면 캔버스가 배열되지 않습니다 (즉, 위치 및 크기가 설정되지 않음). 자, 레이블이 캔버스에 있기 때문에, 당신은 그것을 볼 수 없습니다.