C# 如何在Xamarin.Forms中创建expandeble multible imagebutton查看器

C# 如何在Xamarin.Forms中创建expandeble multible imagebutton查看器,c#,xamarin.forms,C#,Xamarin.forms,我希望在一行中显示多个图像(类似网格),当用户更改分辨率时,这些图像将展开,与此类似:但不通过脚本更改偏移量。是否有一种简单的方法可以做到这一点,而无需手动更改所有图像的大小/位置以适应 我已经尝试添加按钮,并根据其id(0-24)分配行和列,但它只会自动扩展以填充空间:,我尝试通过更改所有按钮的比例和位置来补偿这一点,但只能做到这一点: PosterAtScreen=(int)(Application.Current.MainPage.Width/(双)海报); Grid.SetColumn(

我希望在一行中显示多个图像(类似网格),当用户更改分辨率时,这些图像将展开,与此类似:但不通过脚本更改偏移量。是否有一种简单的方法可以做到这一点,而无需手动更改所有图像的大小/位置以适应

我已经尝试添加按钮,并根据其id(0-24)分配行和列,但它只会自动扩展以填充空间:,我尝试通过更改所有按钮的比例和位置来补偿这一点,但只能做到这一点:

PosterAtScreen=(int)(Application.Current.MainPage.Width/(双)海报);
Grid.SetColumn(图像按钮[i],i%后期屏幕);
SetRow(图像按钮[i],(int)(i/PosterAtScreen));

我通过将网格放置在滚动视图中的stacklayout中解决了这个问题,如下所示:

<ScrollView >
    <StackLayout>
        <Grid x:Name="GRID">

        </Grid>
    </StackLayout>
</ScrollView>
用于将海报放置在我使用的右侧行/列

GRID.RowSpacing = -POSTER_HIGHT-5;

for (int i = 0; i < imageButtons.Count; i++) {
    try {
        Grid.SetColumn(imageButtons[i], i % PosterAtScreenWith);
        Grid.SetRow(imageButtons[i], (int)(i / PosterAtScreenWith));   
    }
    catch (Exception) {
        throw;
    }
}

我通过将网格放置在scrollview中的stacklayout中解决了这个问题,如下所示:

<ScrollView >
    <StackLayout>
        <Grid x:Name="GRID">

        </Grid>
    </StackLayout>
</ScrollView>
用于将海报放置在我使用的右侧行/列

GRID.RowSpacing = -POSTER_HIGHT-5;

for (int i = 0; i < imageButtons.Count; i++) {
    try {
        Grid.SetColumn(imageButtons[i], i % PosterAtScreenWith);
        Grid.SetRow(imageButtons[i], (int)(i / PosterAtScreenWith));   
    }
    catch (Exception) {
        throw;
    }
}

您正在开发基于手机的应用程序吗?它看起来像一个网站或pc应用程序从你的视频。是的,它是非常类似于IMDb,但为此我需要一个很好的图像扩展器,在所有分辨率的工作。现在有点奇怪,因为当我改变分辨率时,所有的图像都会移动,大小也会发生轻微变化。你给网格的
RowDefinition/ColumnDefinition
指定了固定的高度/宽度吗?谢谢,如果我只让网格将行定义设置为星号,然后删除网格外的任何海报,它就解决了这个问题。这是可行的,但我实际上发现将网格放置在一个stacklayout中,该stacklayout放置在一个ScrollView中,并生成带有VerticalOptions=LayoutOptions的按钮。Start解决了我所有的问题,`你在开发一个基于手机的应用程序吗?它看起来像一个网站或pc应用程序从你的视频。是的,它是非常类似于IMDb,但为此我需要一个很好的图像扩展器,在所有分辨率的工作。现在有点奇怪,因为当我改变分辨率时,所有的图像都会移动,大小也会发生轻微变化。你给网格的
RowDefinition/ColumnDefinition
指定了固定的高度/宽度吗?谢谢,如果我只让网格将行定义设置为星号,然后删除网格外的任何海报,它就解决了这个问题。这是可行的,但我实际上发现将网格放置在一个stacklayout中,该stacklayout放置在一个ScrollView中,并生成带有VerticalOptions=LayoutOptions.Start的按钮解决了我所有的问题,``