图像UniformFill居中

时间:2014-11-11 17:20:35

标签: windows-phone-8 windows-phone-8.1

我有一个小问题,我有一个组项目,我想给它一个背景图像,它应该缩放保持它的正确尺寸,但默认情况下,它显示左上角的图像,我希望图像居中。

enter image description here

这是我的代码

 <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" />

1 个答案:

答案 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