우리는 프리즘 기반 Silverlight 응용 프로그램을 작성 중이고 별도의 모듈로 전체 페이지를 보유하고 있습니다.두 개 (또는 그 이상)의 XAML 파일간에 VisualStateManager를 공유하려면 어떻게해야합니까?
public void Show()
{
VisualStateManager.GoToState(this, "ShowState", true);
}
public void Hide()
{
VisualStateManager.GoToState(this, "HideState", true);
}
순간 "ShowState"에서
과 :에서 탐색 할 때
페이지 사이의 전환은 탐색 이벤트를 통해 처리되며, 각 모듈에 탐색 할 때 페이지를 표시하고 숨길 구현, 다음의 메소드가 있습니다 "HideState"는 각 모듈의 XAML 파일에 정의되어 있으므로 너무 많이 중복됩니다. ...
각 천이에 대한 Storyboard
를 나타내는
<Grid x:Name="LayoutRoot">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStates">
<VisualState x:Name="ShowState">
...
</VisualState>
<VisualState x:Name="HideState">
...
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
.
은 그냥 Storyboard
정의에서 오류를 발견 한 순간에 나는 모든 파일에 걸쳐 수정 프로그램을 복제해야 할거야. 각 파일에서 참조 할 수있는 Storyboard
의 정의가 하나만있는 것이 더 좋습니다.
나는 올바른 구문에 대한 모든 아침을 검색했지만 그래서 무엇도 운이 없었 없습니다.
어떻게 우리의 모든 XAML 파일 사이의 VisualStateManager
을 공유 할 수 있습니까?
사용자 정의 컨트롤 내에 '동작'을 캡슐화하려는 것 같습니다. 그렇게하면 필요에 따라 컨트롤을 다시 사용하기 만하면 스토리 보드가 캡슐화되므로 문제가 발생할 때 문제를 해결할 수있는 단일 참조 지점을 제공합니다. 내 추측으로 이것은 Expander 또는 이와 유사한 것입니다; 해당 컨테이너 내의 모든 자식에게 공통된 기능을 제공합니다. –