J'ai le code XAML suivant: et i, visuellement, obtenez ceci: p> ( http://img810.imageshack.us/img810/2401/imagetretchunifiform.png ) p> avec ( Maintenant, ce que je veux, c'est de centrer l'image verticalement ou horizontalement avec Que dois-je faire? P> Tout le code est le suivant: P> p>
stretch =" Aucun " code>, j'ai eu ceci : p>
p>
stretch = "uniforme" code>! Seul le "plus petit" côté (avec
uniforme code>) sera centré, à droite. Mais pour le moment, comme vous pouvez le constater sur des captures d'écran, l'image est simplement placée dans le coin supérieur gauche, même si j'ai défini
horizontalalignment code> et
verticalalignement code> à
" Centre " code> p>
<UserControl [...]>
<Canvas Width="640" Height="480" Background="#FF881607">
<Image Source="a.jpg" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="Uniform"/>
</Canvas>
</UserControl>
4 Réponses :
Si vous le mettez dans une grille, il sera centralisé automatiquement.
<UserControl> <Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid Grid.Row="0"> <Image Source="a.jpg" Stretch="Uniform"/> </Grid> <Grid Grid.Row="1" Margin="10"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <Button Grid.Column="0" Content="Start"/> <Button Grid.Column="2" Content="Stop"/> </Grid> </Grid> </UserControl>
La toile ne prend pas en charge l'horizontallignement de l'image. Si vous voulez une mise en page dynamique comme celle-ci, la toile est un mauvais choix (il est utile si vous voulez réellement ignorer forte> de cette mise en page). Quelle est la raison exacte que vous utilisez une toile?
Utilisez simplement une grille: <Grid Background="#FF881607">
<Image Source="a.jpg" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="Uniform"/>
</Grid>
Vous pouvez affecter l'image à un Un strong> imageBrush strong> a une propriété code> code> code> Le seul problème que j'ai trouvé est que l'image semble devenir très aliasée car elle réduit la taille. Je ne sais pas pourquoi c'est. P> p> remplir code > d'un
alignmentx code> et < Code> Alignmenty Code> Propriétés. Par défaut, ceux-ci sont tous deux définis sur
Centre code>. P>
P>
<Border Width="X" Height="X" HorizontalAlignment="Center"> <Border.Background> <ImageBrush ImageSource="{Binding X}" Stretch="UniformToFill"/> </Border.Background> </Border>
Pouvez-vous aussi poster le XAML environnant? Peut-être qu'un parent de l'image n'est pas centré ou étiré.