xaml - 如何检测方向变化并更改布局?

标签 xaml windows-8 windows-runtime microsoft-metro

可以说我有一个网格,其中包含2行,2列以及每个单元格内的许多控件。

当应用程序更改为快照模式时,我的意思是我只希望该应用程序占屏幕的1/3,即一列,两行并仅显示我决定的一些控件。

我对此有什么控制权?

谢谢

最佳答案

您应该在xaml中使用VisualStateManager,以获取完整的xaml解决方案:

<Grid x:Name="LayoutRoot">
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="OrientationStates">
            <VisualState x:Name="Full"/>
            <VisualState x:Name="Fill"/>
            <VisualState x:Name="Portrait"/>
            <VisualState x:Name="Snapped"/>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
</Grid>

为每个VisualState创建StoryBoard,并在xaml中隐藏/显示元素。 Microsoft示例使用相同的解决方案。

--

更新

我在网上搜索并找到了正确的状态,此链接后面有一个示例:MSDN
 <VisualStateManager.VisualStateGroups>
     <VisualStateGroup x:Name="ApplicationViewStates">
        <VisualState x:Name="FullScreenLandscape"/>
        <VisualState x:Name="Filled"/>
        <VisualState x:Name="FullScreenPortrait"/>
        <VisualState x:Name="Snapped"/>
    </VisualStateGroup>
 </VisualStateManager.VisualStateGroups>

状态反射(reflect)了ApplicationViewState枚举。甚至可以找到更多信息here

关于xaml - 如何检测方向变化并更改布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10975706/

相关文章:

c# - 如何将 ActivityIndi​​cator 添加到外壳弹出窗口

windows-8 - Blend for Visual Studio - 在设计模式下显示应用栏

windows-8 - WinRT/Win8 中的 MediaElement 根本不起作用

xaml - 绑定(bind)到 Windows 8 XAML 中的静态字段

c# - 如何通过 3G 连接检查互联网连接状态?

c# - Windows 应用商店应用程序中的异步自定义对话框

wpf - WPF Xaml 的 StringFormat 功能是否适用于 Label.Content?

c# - SelectedItem 不在 WPF 的 ListView 中绑定(bind)

c# - Xamarin XAML 表单的 Stack Layout 布局噩梦

django - 使用pip(python)安装mysql时出错