10
votes

Centrer un contrôle WPF

J'ai une fenêtre où j'ajoute un nouveau usercontrol code> à (avec une image), je veux simplement centrer la commande au milieu de l'écran (à la fois verticalement et horizontalement). Je ne peux que tirer le vertical de travailler. Je vais échanger du contenu dans le DockPanel Code> à partir de My CodeBeHind et souhaitez afficher cet écran de démarrage avant de commencer à faire mon diaporama UI, cela signifie que le contenu est défini à partir du codeBeHind.

My Fenêtre CODE>: P>

<UserControl x:Class="GreenWebPlayerWPF.FrontPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <DockPanel Background="Black">
        <Image Name="image1" Stretch="None" Source="/GreenWebPlayerWPF;component/gw.png" />
    </DockPanel>
</UserControl>


0 commentaires

3 Réponses :


18
votes

Utilisez un grille : xxx

Vous pouvez le dockner à l'intérieur de votre dockpanel (si vous devez avoir un dockpanel < / code> là) pour s'étirer. Et bien sûr, tandis que ce qui précède est tout marquage, vous pouvez simplement créer une telle grille à partir du code.


1 commentaires

Le cadre basé sur XAML utilisé pour la rédaction d'applications de magasin sur RT n'est pas WPF. Si quelque chose, c'est plus d'un dérivé de Silverlight.



3
votes

Je continue à courir dans ce problème lorsque vous essayez de centrer des éléments sur la page. Le problème avec la StackPanel est que l'horizontalalignement n'a aucun effet lorsque l'orientation est horizontale et verticalalignement sans effet lorsque l'orientation est verticale. Donc, vous continuez à frapper votre tête en essayant de définir des valeurs sans effet. Ce n'est pas illogique qu'il fonctionne de cette façon, mais ce serait bien si cela a été signalé comme une erreur.

La solution que j'ai trouvée est de disposer de deux charpentes imprégnées que l'on a centrée horizontalement et l'autre verticalement comme indiqué ci-dessous. Trouver la taille du parent est nécessaire pour former le panneau intermédiaire sinon il serait plat et son contenu caché - une valeur absolue fonctionnerait également. Bien que pas une panacée itise un peu moins verbeuse que d'utiliser une grille. xxx


1 commentaires

Nice et facile à comprendre, mais nécessite un contrôle supplémentaire, mais c'est toujours l'une des voies les plus simples! J'utilise ça! Vous avez sauvé ma journée.



0
votes

C'est assez ancien, mais le centrage d'un contrôle est maintenant aussi simple que: xxx


0 commentaires