【问题标题】:How to develop an Windows Stroe Mail Style app如何开发 Windows Store Mail Style 应用程序
【发布时间】:2015-12-24 05:19:31
【问题描述】:

响应式 UI,我知道 VisualStateManager 可以完成这项工作。但我不知道 怎么办

在宽模式下,它有两列。第一列显示列表,第二列显示同一页面中的内容

在窄模式下,它只在页面中一次显示一件事,并且导航。就像 Win10 邮件应用一样。

非常感谢

【问题讨论】:

    标签: windows-runtime windows-store-apps windows-store windows-dev-center


    【解决方案1】:

    这是一个 XAML 代码:

      <Grid Background="White">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="VisualStateGroup">
                <VisualState x:Name="VisualStateNarrow">
    
                    <VisualState.Setters>
                        <Setter Target="emailDetails.(UIElement.Visibility)" Value="Collapsed"/>
                        <Setter Target="emailsList.(Grid.ColumnSpan)" Value="2"/>
                    </VisualState.Setters>
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="1"/>
                    </VisualState.StateTriggers>
                </VisualState>
    
    
                <VisualState x:Name="VisualStateExtended">
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="700"/>
                    </VisualState.StateTriggers>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
    
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="340" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
    
        <!-- Emails List -->
        <Grid x:Name="emailsList" Background="LightBlue" >
            <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="Nothing to show!" />
        </Grid>
    
        <!-- Email Details -->
        <Grid Grid.Column="1" x:Name="emailDetails" Background="Blue" >
            <TextBlock HorizontalAlignment="Center" Foreground="White" VerticalAlignment="Center" Text="Select email to show!" />
        </Grid>
    
    </Grid>
    

    我已将“700 px”设置为扩展状态的最小宽度,您可以通过以下方式更改它:&lt;AdaptiveTrigger MinWindowWidth="700"/&gt;

    【讨论】:

    • 谢谢。这真的是非常好的代码。而且我不知道为什么VisualStateExtended 没有VisualState.Setters,但它确实有效。
    • 您不必为您的主要/默认设计-或状态-分配设置器:)。
    • @startewho 请接受它作为答案以帮助其他人快速获得它:)
    猜你喜欢
    • 1970-01-01
    • 2010-11-21
    • 2015-03-31
    • 2011-09-25
    • 2011-04-04
    • 2013-02-07
    • 2011-01-07
    • 1970-01-01
    • 2016-03-19
    相关资源
    最近更新 更多