我正在使用scrollview / grid!在我的网格中,我有一个图像,按钮和标签。
在此页面中,我从数据库中收集我的图像,这意味着图像会根据您事先单击的类别而有所不同。这意味着图像的高度/宽度并不总是相同。
有些看起来不错(它们以正常高度填满整个屏幕)但有些根本不会填满整个屏幕。如果我做了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"
图像也没有改变,因此在图像方面我有点想法。
那么如何调整我的代码,以便我的图像始终完全覆盖屏幕宽度,同时保持正常尺寸?
答案 0 :(得分:0)
嗯,是的,您还必须分配Grid.Row和Grid.Column以找到网格的确切位置。 我已经改变了你的代码:(我改变的值仅用于展示)
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="100"/>
</Grid.RowDefinitions>
<StackLayout Grid.Row="0" BackgroundColor = "Red" HorizontalOptions = "FillAndExpand" VerticalOptions = "FillAndExpand">
<Image Grid.Row="1" 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>
参考,XAML docs您如何使用网格。
http://www.dailyfreecode.com/code/grid-layout-xaml-212.aspx http://www.c-sharpcorner.com/uploadfile/mahesh/grid-in-wpf/
注意:对于您必须提供行定义的每一行,同样适用于列定义。