在silverlight中居中图像的最简单方法?

时间:2009-02-26 01:17:24

标签: silverlight silverlight-2.0

假设我有一个包含3行的网格。在中间一行,我想放置一个图像,然后将其垂直和水平地放在该行中。但是因为(我认为)Silverlight在元素居中时使用了元素的左上角,所以当我告诉它垂直/水平居中时,图像的左上角是居中的。

我已经看到了两种方法:

  • 修改事件中的图像位置
  • 将图像的边距设置为所有边上的非常大的数字(500)

有更简单的方法吗?看起来有点奇怪,你需要像这两种方法那样做一些hacky。我宁愿告诉它的锚点在中心,然后告诉它居中。嗯,可能是一个很好的自定义控件。

更新:关于这一点的真正令人讨厌的事情是当我对页面进行微小更改以更改图像居中的方式并且FF3显示旧版本的页面时。这让我觉得它不起作用。然后我在IE中把它拉了起来,看起来是正确的。我刷新了FF3的缓存并显示了正确的页面。该死的很烦人。

1 个答案:

答案 0 :(得分:4)

为什么这不适合你?

<Grid x:Name="LayoutRoot" Background="White">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Image Source="Butterfly.jpg"
           Height="50" Width="50"
           HorizontalAlignment="Center" VerticalAlignment="Center"
           Stretch="UniformToFill"
           Grid.Column="1" Grid.Row="1" />
</Grid>