사용자 지정 컨트롤을 작성하고 페이지가 세로 또는 물리기 인 경우 다른 패딩을 사용하려고합니다. 나는 페이지가 다음 뷰 상태에 대한 지원을 생성하는 LayoutAwarePage에서 상속 것으로 나타났습니다 :사용자 지정 레이아웃 인식 컨트롤
- FullScreenLandscape
- FullScreenPortrait
- 을 가득
내가 유사한 코드를 추가해야합니까 짤깍 소리를 내 새 컨트롤 (컨트롤에서 상속). 그렇지 않다면 왜 LayoutAwarePage가 이것을해야합니까? 또한, 다음 VisualStateManager를 컨트롤의 ControlTemplate에 스틱으로 고정시키고 페이지 레이아웃을 존중하도록 만들거나 너무 쉽습니다.
<VisualStateGroup x:Name="ApplicationViewStates">
<VisualState x:Name="FullScreenLandscape"/>
<VisualState x:Name="Filled"/>
<VisualState x:Name="FullScreenPortrait">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Padding">
<DiscreteObjectKeyFrame KeyTime="0" Value="1,2,3,4"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Snapped">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Padding">
<DiscreteObjectKeyFrame KeyTime="0" Value="5,6,7,8"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
편집 : 컨트롤은 기본적으로 이러한 상태를 지원하지 않는 그들이 추가해야 할 것 같습니다. 또한 ButtonBase는 스타일로 사용하기 때문에 이러한 상태를 지원합니다.
멋진 한 -이 실제로 정답 것으로 보인다. –