2017-01-31 4 views
1

템플릿 10의 기본 시각적 상태에 대한 기준을 어떻게 수정할 수 있습니까?[template10]의 새로운 visualstate

휴대 전화의 가로 모드 대 PC 또는 타블렛의 창을 구분할 수 있기를 바랍니다.

NormalMinWidth는 전화를 가로 모드로 설정하면 트리거됩니다. 문제는 가로 모드의 휴대 전화 화면 높이가 태블릿이나 PC보다 훨씬 적을 수 있다는 것입니다.

휴대 전화의 NormalMinWidth와 PC 또는 태블릿의 레이아웃이 다를 수 있기를 바랍니다. 예를 들어, 최소 화면 높이를 찾는 또 다른 시각적 상태 인 NormalMinWidthMinHeight를 추가하고 싶습니다.

모든 의견을 많이 주시면 감사하겠습니다.

답변

1

동적으로 상태를 변경할 수있는 코드를 구현해야합니다.

예를 들어, 현재보기의 방향에 따라 상태를 변경하려는 경우. OrientationChanged 이벤트의 이벤트 핸들러를 구현하고 VisualStateManager 클래스의 GoToState 메소드를 사용해야합니다.

참조 다음 코드 샘플을 참조하십시오 :

<VisualStateManager.VisualStateGroups> 
     <VisualStateGroup x:Name="AdaptiveVisualStateGroup"> 

      <VisualState x:Name="VisualMinWidthHeight"> 
       <VisualState.Setters> 
        <Setter Target="stateTextBox.Text" Value="Visual Min Width Height" /> 
       </VisualState.Setters> 
      </VisualState> 
     </VisualStateGroup> 
</VisualStateManager.VisualStateGroups> 
<TextBlock x:Name="stateTextBox" Text="Current Visual State" /> 
DisplayInformation.GetForCurrentView().OrientationChanged += MainPage_OrientationChanged; 

private void MainPage_OrientationChanged(DisplayInformation info, object args) 
{ 
    Debug.WriteLine("orientation: " + info.CurrentOrientation); 
    if (info.CurrentOrientation == DisplayOrientations.LandscapeFlipped || info.CurrentOrientation == DisplayOrientations.Landscape) 
    { 
     VisualStateManager.GoToState(this, "VisualMinWidthHeight", true); 
    } 
} 
+0

감사를 당신의 대답. 나는 그 질문을 잘 설명 해준다고 생각하지 않는다. Template10 프레임 워크에서 VisualStateManager.GoToState를 호출하는 코드는 어디에 있습니까? 이것을 연장 할 수 있습니까? 시각적 인 상태 변경을 수신하고 GotoState를 호출하기 위해 각 페이지에 코드를 넣고 싶지 않습니다. 나는 이것이 부트 스트 래퍼에 있을지 모르지만 나는 거기서 그것을 보지 못했다. – Sully

+2

@Sully 괜찮습니다. 위의 코드는 단순한 해결책이나 제안이었습니다. 그것은 단지 당신의 참고 용입니다. [StateTriggerBase] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.statetriggerbase.aspx)를 확장하여 사용자 정의 트리거를 만들고 StateTriggers 내에서 사용할 수 있습니다 재산. [State triggers sample] (https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/XamlStateTriggers)은 사용자 정의 트리거를 만드는 방법을 알려줍니다. 자세한 내용은 참조 할 수 있습니다. –

+0

감사 Xavier – Sully