2010-01-13 1 views
5

콘텐츠 컨트롤을 확장하는 사용자 지정 컨트롤을 빌드했습니다. 이 안에는 잘 작동하는 부품 및 상태 모델이 있습니다.사용자 지정 컨트롤의 시각 상태 관리자

난 후, 나는 새로운 'DaveControl'를 열 수 있습니다 (혼합의 템플릿 폴더에 코드를 삽입) 내 XAML의 루트

모든 것이 잘 작동로 사용하고 내가 원하는 기능을 얻을.

그러나 여기에 alertOnScreen과 같은 시각적 상태를 추가하고 visualstatemanager를 사용하려고하면 작동하지 않습니다.

사실 상태가 나열되어 있지 않습니다.

SL3 GotoVisualState의 동작은 정상적으로 작동합니다!

코드에서 시각적 상태가 작동하도록하려면 어떻게해야합니까?

+0

동작을 탐색 할 때 컨트롤이 아닌 프레임 워크 요소를 사용합니다. 이 작동합니다. – DavidA

답변

1

클래스에 TemplateVisualState 속성 집합으로 사용 가능한 상태 집합을 추가 했습니까? Blend는 이들을 사용하여 사용 가능한 상태 목록을 구성합니다.

클래스는 일반적으로 다음과 같이한다 : - : 사용 확장 비주얼 상태 매니저

[TemplateVisualState(Name = "MyGroup1State1", GroupName = "MyGroup1")] 
[TemplateVisualState(Name = "MyGroup1State2", GroupName = "MyGroup1")] 
[TemplateVisualState(Name = "MyGroup2State1", GroupName = "MyGroup2")] 
[TemplateVisualState(Name = "MyGroup2State2", GroupName = "MyGroup2")] 
[TemplatePart(...)] 
[TemplatePart(...)] 
public class MyControl : ContentControl 
+0

Anthony, 컨트롤에 대한 시각적 상태가 작동합니다. 컨트롤은 기본적으로 사용자 정의 컨테이너입니다 ... xaml 파일 -> 새 Dave 컨트롤 (부분 클래스 문제없이 클래스에서 파생 될 수있는 방법)의 루트 요소로 사용합니다. 이제이 컨트롤에 'Add Address'라는 버튼이있어서 무대에서 움직일 무언가가 필요하다고 말하면이 인스턴스에 대한 사용자 정의 ... 그러므로 내 문제. 답변을 주셔서 감사합니다. 제목이 있으면 도움이 될 것입니다. – DavidA