2009-02-26 18 views
0

컨트롤을 놓고 이동하고 크기를 조정할 수있는 사용자 정의 캔버스가 있습니다. 적어도 사전에 결정된 크기로 시작할 수는 있지만 크기를 조정할 수 있어야합니다.WPF - 사용자 정의 캔버스의 UserControl 크기 조정

제 문제는 크기를 조정할 수없는 사용자 정의 컨트롤이 있다는 것입니다. Height와 Width를 사용자 정의 컨트롤에 설정합니다 (드롭 작업시). 그러나 컨트롤이 캔버스에서 크기가 조정되면 시각적 크기는 그대로 유지됩니다 (크기 조정 핸들이 변경됨). 컨트롤의 크기가 변경 될 때 Height 속성이 변경되는 것을 볼 수 있습니다 (usercontrol.height). 그러나 컨트롤의 모양은 동일한 크기로 유지됩니다.

사용자 콘트롤의 내부 컨테이너가 usercontrol.height에 바인딩되어야한다고 생각했지만 도움이되지 않았습니다. (또는 어쩌면 내가 바인딩 권리가 없었어요).

동일한 캔버스에서 드롭 된 컨트롤이 예를 들어 이미지 컨트롤 인 경우 드롭에 명시적인 높이를 설정할 수 있으며 필요한만큼 크기가 조정됩니다. 그래서 그것은 UserControl 것으로 보인다.

그렇다면 크기를 조정하기 위해 UserControls와 관련하여 특별한 것이 있습니까? 모든 것을 시작하려면 명확한 높이와 너비를 사용해야합니까?

도움 주셔서 감사합니다.

답변

2

WPF 레이아웃 시스템은 사용자가 발견 한 것처럼 혼란 스러울 수 있습니다. 레이아웃과 측정 시스템에 대한 확실한 이해를 대신 할 수는 없습니다. 많은 WPF 개발을 계획하고 있다면, this article on the layout system을 읽은 다음 다시 편안하게 느낄 때까지 Kaxaml과 같은 반복 환경에서 잠깐 동안 실험 해 보는 것이 20 분이 걸릴 가치가 있습니다.

시스템은 매우 논리적입니다. 페니가 떨어지는 데 오랜 시간이 걸리지 않습니다. 간접적 인 답변을 드려 죄송합니다.하지만 실제로 무슨 일이 벌어지고 있는지 설명하기에 충분한 정보가 귀하의 질문에 있다고 생각하지 않습니다.

HorizontalAlignmentVerticalAlignment 속성을 확인할 수도 있습니다.

0

WPF 전문가가 아니지만 찾고있는 시나리오를 달성하기 위해 자동 크기 조정을 활성화해야한다고 생각합니다. 이것은 기본적으로 "특정 크기가 없습니다"라는 Double.NaN으로 컨트롤의 높이/너비를 설정하여 수행됩니다. 일단 그렇게하면 컨트롤의 크기에 따라 사용 가능한 공간을 차지하도록 컨트롤의 크기가 조정됩니다.