2009-05-20 6 views
3

Puisque le canevas nécessite un placement en haut/à gauche pour le placement, si vous voulez centrer quelque chose, vous ajoutez une grille au canevas approprié. Haut avec HorizontalAlignment = "Centre" la meilleure façon de le faire, ou Y a-t-il un meilleur moyen?Perfect Center sur canevas WPF

Ce snip est une toile 150x300, avec un contenu centré sur une grille ....

<Canvas Width="150" Height="300"> 
    <Grid Canvas.Top="75" Width="106" HorizontalAlignment="Center"> 
     {whatever you want centered} 
    </Grid> 
</Canvas> 

Répondre

7

solution de Guy fonctionne, mais vous pouvez avoir à modifier z ordre et la visibilité si vous jonglez test de recherche. Une autre alternative est d'avoir la grille à l'intérieur du canevas (comme vous l'avez spécifié dans votre XAML) avec la hauteur/largeur définie sur (ou liée à) la hauteur/largeur du canevas. Ensuite, définissez HorizontalAlignment/VerticalAlignment sur Center pour le contenu de votre grille.

4

Je ne suis pas sûr que cela répondra à vos besoins exacts, mais si vous mettez à la fois la toile et le contenu à l'intérieur d'une grille en tant que pairs, il vous obtiendrez un résultat centré:

<Grid> 
    <Canvas Width="150" Height="300"/> 
    <Button HorizontalAlignment="Center" VerticalAlignment="Center" Width="106" Content="Click"/> 
</Grid>