我有一个包含3行3列的网格:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="300"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="100"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="100"></RowDefinition>
</Grid.RowDefinitions>
我中间还有一张图片:
<Image Grid.Row="1" Grid.Column="1" Source="" />
有没有办法在这张照片中自动放置我从用户加载的图像?例如,将图像自动放置在绿色区域中,而无需通过输入用户的图像分辨率进行更改。
答案 0 :(得分:1)
您发布的图片是605px * 439px。我测量了图片,得到了板子的边框长度。请看下图:
当我们拉伸和缩小图片时,图片的比例不会改变。我们可以使网格具有固定的比例。
使用比例大小调整(也称为星形大小调整),按加权比例在网格的行和列之间分配可用空间。在XAML中,星形值表示为*(或加权星形大小的n *)。例如,要指定一列比2列布局中的第二列宽5倍,请使用&#34; 5&#34;和&#34;&#34;对于ColumnDefinition元素中的Width属性。
有关详细信息,请参阅Layout properties
例如:
<Grid>
<Grid.Background>
<ImageBrush Stretch="Fill" ImageSource="Assets/blackground.jpg" />
</Grid.Background>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="43*"></ColumnDefinition>
<ColumnDefinition Width="518*"></ColumnDefinition>
<ColumnDefinition Width="44*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="46*"></RowDefinition>
<RowDefinition Height="332*"></RowDefinition>
<RowDefinition Height="61*"></RowDefinition>
</Grid.RowDefinitions>
<Image Name="MyImage" Stretch="Fill" Grid.Row="1" Grid.Column="1" />
</Grid>