0

我的 Windows 8 c#/xaml 应用程序有 3 个大网格,里面有内容。每一个都完全填满了屏幕。这个系统非常适合我的目的,直到用户抢购我的应用程序。

那么是否可以完全更改网格定义,或者将所有文本框、按钮和列表视图拉到另一个“捕捉”网格中?最后一个只是一个想法。

private void pageRoot_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        if (ApplicationView.Value == ApplicationViewState.Snapped)
        {
            ????
        }
        else
        {
            Grid1.Width = Windows.UI.Xaml.Window.Current.Bounds.Width;
            Grid2.Width = Windows.UI.Xaml.Window.Current.Bounds.Width;
            Grid3.Width = Windows.UI.Xaml.Window.Current.Bounds.Width;
        }

    }
4

2 回答 2

1

这是 MVVM 变得非常方便的场景。通过创建两个单独的视图,每个视图用于捕捉、填充和全屏,您可以相对轻松地在它们之间进行切换。

您的另一个选择是使用新的 FlipView 控件。Contoso Cookbook 示例应用程序中有一个很好的示例,可以在 Windows 8 Dev Camp in a Box 中找到。

http://bit.ly/win8RCdevcamp

下面是来自 Contoso 动手实验室的示例代码:

<FlipView.ItemTemplate>
    <DataTemplate>
        <UserControl Loaded="StartLayoutUpdates" Unloaded="StopLayoutUpdates">
            <ScrollViewer x:Name="scrollViewer" Style="{StaticResource VerticalScrollViewerStyle}" Grid.Row="1">

                <!-- Vertical StackPanel for item-detail layout -->
                <StackPanel Orientation="Vertical" Margin="20,0,20,0">
                    <StackPanel Orientation="Vertical">
                        <TextBlock FontSize="20" FontWeight="Light" Text="{Binding Title}" TextWrapping="Wrap"/>
                        <Image x:Name="image" Width="260" Margin="0,12,0,40" Stretch="Uniform" Source="{Binding Image}" HorizontalAlignment="Left"/>
                    </StackPanel>
                    <StackPanel Orientation="Vertical">
                        <TextBlock FontSize="20" FontWeight="Light" Text="Ingredients" Margin="0,0,0,16"/>
                        <TextBlock FontSize="16" FontWeight="Light" TextWrapping="Wrap" Text="{Binding Ingredients, Converter={StaticResource ListConverter}}" />
                    </StackPanel>
                </StackPanel>
            </ScrollViewer>
        </UserControl>
    </DataTemplate>
</FlipView.ItemTemplate>

如您所见,对于每个 FlipView,都引用了不同的显示状态。我建议您查看动手实验室以更具体地了解您的情况,或者查看包含 FlipView 控件的 HTML 和 XAML 示例的其他示例:http: //code.msdn.microsoft.com/windowsapps/ FlipView-control-sample-18e434b4

于 2012-08-25T11:59:54.257 回答
0

在您的场景中,当我检测到对快照的更改并加载具有快照优化体验的页面时,我将导航到不同的页面,而不是尝试动态更新复杂页面的布局。

于 2012-08-24T17:22:16.423 回答