我有一个小问题,我有一个组项目,我想给它一个背景图像,它应该缩放保持它的正确尺寸,但默认情况下,它显示左上角的图像,我希望图像居中。
这是我的代码
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="15"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="180" />
<ColumnDefinition Width="300" />
</Grid.ColumnDefinitions>
<Border BorderThickness="2" Width="180" Height="101" Grid.RowSpan="2" VerticalAlignment="Top">
<Image Source="{Binding Imageurl} Width="180" Height="101" Grid.Column="0" Grid.RowSpan="2" HorizontalAlignment="Left" Stretch="UniformToFill"></Image>
</Border>
<TextBlock Text="Example1" Grid.Column="1" Grid.Row="0" VerticalAlignment="Top" />
<TextBlock Text="Example2" Grid.Column="1" Grid.Row="1" VerticalAlignment="Bottom" />
答案 0 :(得分:4)
您需要删除图像的宽度和高度 - 您希望它填充容器,以便它应该使用容器的属性。此外,如果您希望它居中,那么您需要定义 VerticalAlignment (也许是水平的)。我认为你在寻找的是:
<Border BorderThickness="2" Width="180" Height="101" Grid.RowSpan="2" VerticalAlignment="Top">
<Image Source="{Binding Imageurl}" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="UniformToFill"/>
</Border>
Grid.Column="0" Grid.RowSpan="2"
中您也不需要Image
- 这些属性不会生效 - 图片的容器是 Border (位于 Grid )在那里你应该定义 Column / RowSpan 。