【发布时间】:2017-01-09 09:56:49
【问题描述】:
我正在使用滚动视图/网格!在我的网格内,我有一个图像、按钮和一个标签。
在此页面中,我从我的数据库中收集了我的图像,这意味着图像会根据您事先单击的类别而有所不同。这意味着图像并不总是相同的高度/宽度。
有些看起来不错(它们以正常高度填满整个屏幕),但有些根本不填满屏幕。如果我做一个AspectFill,一些图片会被截断,我也不想要。我也尝试过Fill,但这会使情况变得更糟。
这是我正在使用的:
<ScrollView HorizontalOptions = "FillAndExpand" VerticalOptions = "FillAndExpand" >
<StackLayout HorizontalOptions = "FillAndExpand" VerticalOptions = "FillAndExpand">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackLayout Grid.Row="0" BackgroundColor = "Red" HorizontalOptions = "FillAndExpand" VerticalOptions = "FillAndExpand">
<Image x:Name="theimage" Aspect = "AspectFit" HorizontalOptions = "FillAndExpand" VerticalOptions = "FillAndExpand" />
<Button Clicked="clickFunc" TextColor="White" Grid.Row="1" HeightRequest="80" WidthRequest="120" BorderRadius="40" HorizontalOptions="End" VerticalOptions="Start" />
<StackLayout Grid.Row="1" Padding="10,20,10,0">
<Label TextColor = "#474747" x:Name="title" Text="" HorizontalOptions="Start" FontFamily="Helvetica Neue" FontAttributes="Bold" />
</StackLayout>
</StackLayout>
</Grid>
</StackLayout>
</ScrollView>
我试图这样做来解决这个问题:
theimage.WidthRequest = App.ScreenWidth;
我从 AppDelegete 获得 ScreenWidth,但 theimage 根本没有改变它的宽度。如果我尝试在 xaml 中像这样手动添加一个数字:
WidthRequest = "500"
图像也没有改变,所以我在图像方面有点没有想法。
那么我该如何调整我的代码,以使我的图像在保持正常尺寸的同时始终完全布局到屏幕宽度?
【问题讨论】:
-
首先您的网格行高是自动的,其次您可以使用 RowDefinition 和 ColumnDefinition 来固定高度宽度。即,将两个值都设置为 50,如果您遇到问题,请告诉我。
-
好的,让我看看。我是使用网格的新手,因此我不是 100% 确定
-
我应该将行高从 Auto 更改为
*吗?我还添加了<Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions>,我应该在我的图片中添加Grid.Row="0"吗? -
你解决了这个问题吗?我面临同样的问题
标签: c# xaml xamarin xamarin.forms