表单XAML GridView模板格式设置问题

表单XAML GridView模板格式设置问题,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,我有一个Xamarin应用程序,就是搞不懂XML。我在Windows应用商店应用程序上做了很多XAML,但Xamarin的差异似乎很奇怪。我的主页上有一个部分的代码,我似乎无法用5幅图片改变背景网格的大小。无论我做了什么更改,主网格和gridview.itemtemplate都保持固定大小。因此,静态图像位于网格的右侧。我将尝试附加一个结果的屏幕截图。在任何情况下,我都希望背景网格自动调整自身的大小,以适应水平布局。这只是为了测试,因为我的最终解决方案是基于可观察的集合嵌入另一个GridView

我有一个Xamarin应用程序,就是搞不懂XML。我在Windows应用商店应用程序上做了很多XAML,但Xamarin的差异似乎很奇怪。我的主页上有一个部分的代码,我似乎无法用5幅图片改变背景网格的大小。无论我做了什么更改,主网格和gridview.itemtemplate都保持固定大小。因此,静态图像位于网格的右侧。我将尝试附加一个结果的屏幕截图。在任何情况下,我都希望背景网格自动调整自身的大小,以适应水平布局。这只是为了测试,因为我的最终解决方案是基于可观察的集合嵌入另一个GridView。仅使用静态图像进行测试


我不确定控件
控制:GridView
的功能。但这种观点给孩子们带来的影响似乎是这里的问题。我用网格替换了那个控件,得到了同样的问题

原因是您已经为该控件设置了
WidthRequest
,这不是必需的。它将限制宽度。删除
WidthRequest
并将其替换为
HorizontalOptions
作为
StartAndExpand
。这将允许控件采用其父控件提供的任何大小。这对我很管用

注意:如果希望视图强制填充可用空间,请使用视图的
垂直选项
水平选项
属性的
fillendexpand
值。


请在下面查找代码

<Grid Padding="5" BackgroundColor="LightGray">
    <ScrollView Padding="5" BackgroundColor="Red">
        <Grid BackgroundColor="Aqua" ColumnSpacing="10" Padding="5" RowSpacing="5" 
                HorizontalOptions="StartAndExpand" VerticalOptions="Start">
            <Grid Margin="5,5,0,0" BackgroundColor="Pink">
                <StackLayout Orientation="Vertical" HorizontalOptions="StartAndExpand">
                    <StackLayout Orientation="Horizontal" Margin="10,10,10,10" HorizontalOptions="Center" VerticalOptions="Center" BackgroundColor="Yellow">
                        <Image HeightRequest="100" WidthRequest="50" Source="github.png"/>
                        <Image HeightRequest="100" WidthRequest="50" Source="github.png"/>
                        <Image HeightRequest="100" WidthRequest="50" Source="github.png"/>
                        <Image HeightRequest="100" WidthRequest="50" Source="github.png"/>
                        <Image HeightRequest="100" WidthRequest="50" Source="github.png"/>
                    </StackLayout>
                    <Label Text="Name" FontSize="Large" FontAttributes="Bold" HorizontalTextAlignment="Center"
                            VerticalTextAlignment="End" TextColor="Black"/>
                </StackLayout>
            </Grid>
        </Grid>
    </ScrollView>
</Grid>


下面是我得到的输出


我希望这对您有所帮助。

为了方便起见,我在示例代码中对这些值进行了硬编码。您可以根据所需结果的要求修改代码。如果答案对你有帮助,请接受/投赞成票,这样对其他人也有帮助。快乐编码…:)非常感谢您在这方面花时间。我的实际问题是我使用的“GridView”库。我想要的是CollectionView,但正如我刚才发现的,直到forms的v4.3才可用。我刚刚更新,这似乎正是我需要的,现在我有了我想要的行为。衷心感谢您的帮助,并愿意对此进行调查。Xamarin中不存在GridView。它可能是一个第三方控件,如果你发现了这个bug,你应该联系发布它的人。当然,在这里提问是合理的。