0

3 가지 컨트롤 상태에 따라 다른 콘텐츠를 표시 할 사용자 지정 컨트롤을 구현하려고합니다. 나는 상태와 3 개의 다른 콘텐트 프로퍼티를 컨트롤에 추가함으로써 이것을 달성했다.여러 ContentPresenters 사용자 지정 컨트롤

내가 지금 가지고있는 것은 그러한 것입니다.

  1. 사용자 "Default", "CurrentStep" 또는 "Completed" 중 하나에 CurrentState 속성을 설정합니다.
  2. 컨트롤이 VisualStateManager을 통해 다른 시각적 상태로 전환됩니다.
  3. 기본 서식 파일 집합 Visibility을 3 가지로 제어하여 ContentPresenters 단일 콘텐츠를 표시합니다.

모두 문제없이 작동합니다. 내가해야 할 일은 디자인 타임 지원을 가능하게하는 것입니다. 할 수있는 일은 ContentProperty 속성을 콘텐츠 속성 중 하나에 설정하여 Blend가이 속성을 컨트롤 트리에서 자식으로 표시하도록하는 것입니다. 그러나 이렇게하면 디자인 타임에 하나의 컨텐트 속성 만 편집 할 수 있습니다.

컨트롤에 디자인 타임 지원을 추가로 추가하려면 어떻게해야합니까?

답변

1

여러 개의 contentPresenter로 사용자 지정 컨트롤을 만들지 않았을 것입니다.

대부분의 경우 수행하려는 작업을 수행하기 위해 명명 된 부분으로 컨트롤을 만듭니다 (기본 "winrt 컨트롤 템플릿"은이 "명명 된 파트"메커니즘을 사용합니다). 사용자 지정 컨트롤 상태가 변경되면 하나 이상의 명명 된 파트를 표시/숨기기 만합니다.

이 방법을 사용하면 기본 컨트롤 템플릿과 필요한 모든 명명 된 파트를 제공하고 컨트롤을 사용자 지정할 수 있으며 기본 템플릿을 무시하고 자신 만의 파트를 정의 할 수 있습니다. 상태에 따른 논리보기/숨기기는 동일하게 유지되지만 대상 컨트롤 선택은 템플릿을 작성하는 사람이 결정합니다.

+0

답변 해 주셔서 감사합니다. 비록 내가 TemplatedPart 속성을 내 컨트롤과 함께 작동하도록 만들지는 못했지만. 혼합은 여전히 ​​응답하지 않습니다. –

+0

TemplatePart 속성의 문제점은 무엇입니까? 어쩌면 코드를 게시하면 도움이 될 것입니다. – Miiite