我想寫一個自定義控件,並希望它具有不同的填充,如果該頁面是肖像或捕捉。我注意到,網頁從LayoutAwarePage繼承它創建以下視圖狀態支持:自定義佈局感知控件
- FullScreenLandscape
- 填充
- FullScreenPortrait
- 啪
我是否需要類似的代碼添加到我的新的控件(它繼承自Control)。如果沒有,爲什麼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確實支持這些狀態,因爲它在它的樣式中使用它們。
尼斯一個 - 這實際上看起來是正確的答案。 –