2009-02-26 5 views
0

Dites que j'ai une grille avec 3 lignes. Dans la rangée centrale, je voudrais mettre une image et ensuite le centrer dans cette rangée verticalement et horizontalement. Mais depuis (je pense) Silverlight utilise les coins supérieurs gauche d'un élément quand il se centre, le coin supérieur gauche de l'image est centré quand je dis au centre verticalement/horizontalement.moyen le plus facile de centrer une image dans Silverlight?

Je l'ai vu 2 approches à ceci:

  • modifier la position de l'image dans un événement
  • définir la marge de l'image à un très grand nombre de tous les côtés (500)

Y a-t-il un moyen plus facile? Semble un peu étrange que vous auriez besoin de faire quelque chose de hacky comme ces 2 approches. Je préférerais juste dire à la chose que son ancre est au centre et ensuite dire au centre. Hmmm, pourrait être un bon contrôle personnalisé. La chose vraiment désagréable à ce sujet était quand j'ai fait un changement mineur à la page pour changer comment cette image était centrée et FF3 a affiché une ancienne version de la page. Ce qui m'a fait penser que ça n'a pas marché. Puis je l'ai tiré dans IE et il semblait bien. J'ai vidé le cache de FF3 et il a affiché la bonne page. Merde ennuyeux.

Répondre

4

Pourquoi cela ne fonctionnerait-il pas pour vous?

<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> 
+0

Je vais tenter le coup, mais je suis à peu près sûr que c'est 99% identique à ce que j'ai déjà. – jcollum

+0

Ugh, oui vous avez raison. J'ai eu l'image à l'intérieur d'un canevas, qui positionne les objets en fonction de leur coin supérieur gauche. Doh! – jcollum