当前位置: 首页 > 知识库问答 >
问题:

Windows 8 Xaml-基于方向更改GridView布局

黎同
2023-03-14

所以我很确定这应该是一个快速简单的解决方案,但我似乎不明白。我试图改变我的GridView基于设备方向的布局,所有在Xaml。例如:

水平(水平滚动)
item1 item2 item3
item4 item5 item6

垂直(垂直滚动)
item1
item2
item3
item4
item5
item6

    <StackPanel Orientation="Horizontal" RequestedTheme="Light">
        <GridView TabIndex="1"  Grid.Row="2" ItemClick="LooksDetailItemClick" 
                                               IsItemClickEnabled="True" IsSwipeEnabled="False"     
                                               Padding="10,10,10,10" SelectionMode="Single" 
                                               ItemsSource="{Binding subItems}"  Height="auto" Width="auto" HorizontalAlignment="Left"
                                               VerticalAlignment="Top" Background="WhiteSmoke" HorizontalContentAlignment="Left" >
            <GridView.ItemTemplate>
                <DataTemplate>

                    <Grid x:Name="InnerGrid" Grid.Column="1"  Height="auto" Width="364">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="0"/>
                            <RowDefinition Height="280"/>
                        </Grid.RowDefinitions>

                        <Grid x:Name="OtherGrid" Grid.Row="2" Grid.Column="2" Margin="29,0,35,0">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="30"/>
                                <!--TitleBox-->
                                <RowDefinition Height="354*"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="195*"/>
                                <!-- Right Box Text -->
                                <ColumnDefinition Width="130*"/>
                            </Grid.ColumnDefinitions>

                            <TextBlock  Text="{Binding name}" VerticalAlignment="Top" TextWrapping="Wrap" HorizontalAlignment="Left" 
Width="auto" Height="auto" Margin="0,0,-198,0" />
                            <Image Source="{Binding imagePath}"  Grid.Column="0" Grid.Row="1" Stretch="Fill" Height="212" Width="141" 
    VerticalAlignment="Top" HorizontalAlignment="Left"  Margin="10,0,20,0"/>

                            <StackPanel Grid.Column="2" Grid.Row="2" Orientation="Vertical">

                                <TextBlock  Text="Style:" FontSize="24" Margin="0, 10, 0, 0"/>
                                <TextBlock  Text="10000023" FontSize="10.667" Margin="0, 10, 0, 0"/>
                                <TextBlock Text="{Binding price}" FontSize="24" Margin="0, 10, 0, 0"/>
                                <TextBlock Text="Color:" FontSize="24" Margin="0, 10, 0, 0"/>

                                <GridView   Height="130" ItemsSource="{Binding colors}">
                                    <GridView.ItemTemplate>
                                        <DataTemplate>
                                            <Image Source="{Binding Color_Image}"  Width="40" Height="40" HorizontalAlignment="Left"/>
                                        </DataTemplate>
                                    </GridView.ItemTemplate>
                                </GridView>
                            </StackPanel>
                        </Grid>
                    </Grid>
                </DataTemplate>
            </GridView.ItemTemplate>
            <GridView.ItemsPanel>
                <ItemsPanelTemplate>
                    <VariableSizedWrapGrid Orientation="Vertical"  MaximumRowsOrColumns="2"  /> 
                </ItemsPanelTemplate>
            </GridView.ItemsPanel>
        </GridView>
    </StackPanel>

共有1个答案

凌志学
2023-03-14

不幸的是,您不能在XAML中完成所有操作,除非通过不再支持的LayoutAware Page之类的东西。因此,您需要创建自己的实现,这不是一个“全部在XAML内”的解决方案。

 类似资料:
  • 我正在我的项目中使用ActionBar。我想改变ActionBar项目的方向意味着在屏幕的右侧找到选项卡图标和徽标,并在屏幕的左侧找到菜单项。我在谷歌上搜索了一下,但并没有找到任何有用的东西,我还阅读了API 14中主题和样式的xml资源,但我再次并没有找到任何解决方案。

  • 我正在尝试使用JAVA(android Studio)创建一个简单的android应用程序。我愿意实现的是,应用程序的背景颜色将根据TextView的内容进行更改(在“打开”和“关闭”两个值之间不断更新)。我知道必须使用onChanged(),但我真的不知道如何实现TextView的侦听器。 我试着这样写:基于我在网上找到的内容,但无法真正了解下一步是什么。我完全是个新手,所以请善待我。 顺致敬意

  • 我有两个选项卡的活动,它实现了两个相似的片段,每个片段都由GridView组成,通过AsyncTask加载项目,它工作正常,直到屏幕方向改变。。。在这之后,只能单击操作栏并在选项卡之间切换,但GridView完全停止与用户交互:滚动、单击或其他任何操作。只实现了标准的onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle

  • 我是XSLT新手,希望能得到一些帮助。 我目前有一个XML,它包含以下格式的多个副本: 我的任务是替换id属性的值。我需要根据代码的数字部分改变这个值。如果值大于850000,格式应该改为USA868509。如果该值小于850000,则将id值更改为仅包括数字。XML中的其余值应保持完全相同。 我目前拥有以下xslt: 我很难确定要更改的值,因为XSLT不执行变量循环。有没有办法更改XSLT以获得

  • 我正在向运行的activity添加一个带有WindowManager的相机覆盖。当我启动相机并调用WindowManager时,它将我的屏幕从纵向变为横向,即使我为WindowManager.LayoutParams分配了适当的纵向标记。还没能通过谷歌找到任何解决方案。 下面是我在服务中的方法中运行的WindowManager代码: 布局r.layout.camera只是我将相机添加到的Frame

  • 本文向大家介绍ios基于UICollectionView实现横向瀑布流,包括了ios基于UICollectionView实现横向瀑布流的使用技巧和注意事项,需要的朋友参考一下 在网上找了许久,一直没有发现有提供横向瀑布流效果的。在项目中用到了我就在垂直瀑布流的基础上,进行了修改,做出了横向瀑布流的效果。同时也对一些UICollectionView的属性进行简单的注释,方便以后查阅。 1、首先要写一