Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

FrameworkElement.ArrangeOverride, méthode

Une fois substitués dans une classe dérivée, les éléments enfants de positions et détermine la taille d'une classe dérivée d' FrameworkElement .

Espace de noms :  System.Windows
Assembly :  PresentationFramework (dans PresentationFramework.dll)
protected virtual Size ArrangeOverride(
	Size finalSize
)

Paramètres

finalSize
Type : System.Windows.Size
La zone finale dans le parent de cet élément doit utiliser pour réorganiser lui-même et ses enfants.

Valeur de retour

Type : System.Windows.Size
La grandeur réelle utilisée.

Remarques à l'attention des héritiers

Les auteurs de contrôle qui souhaitent personnaliser la passe de réorganisation du traitement de mise en page doivent substituer cette méthode. Le modèle d'implémentation doit appeler Arrange sur chaque élément enfant visible, et passe la taille souhaitée finale pour chaque élément enfant comme paramètre d' finalRect . Les éléments parents doivent appeler Arrange sur chaque enfant, sinon les éléments enfants ne seront pas affichés.

De nombreuses classes dérivées offrent des implémentations de cette méthode. Les principaux incluent : Window.ArrangeOverride, Page.ArrangeOverride et Control.ArrangeOverride.

Cet exemple montre comment substituer le comportement de disposition par défaut de l'élément Panel et créer des éléments de disposition personnalisés dérivés de Panel.

L'exemple définit un élément Panel personnalisé simple appelé PlotPanel qui positionne les éléments enfants d'après deux coordonnées x et y codées en dur. Dans cet exemple, x et y ont tous les deux la valeur 50 ; par conséquent, tous les éléments enfants sont positionnés à cet emplacement sur les axes x et y.

Pour implémenter des comportements Panel personnalisés, l'exemple utilise les méthodes MeasureOverride et ArrangeOverride. Chaque méthode retourne les données Size qui sont nécessaires pour positionner et restituer les éléments enfants.


public class PlotPanel : Panel
{
    // Default public constructor
    public PlotPanel()
        : base()
    {
    }

    // Override the default Measure method of Panel
    protected override Size MeasureOverride(Size availableSize)
    {
        Size panelDesiredSize = new Size();

        // In our example, we just have one child. 
        // Report that our panel requires just the size of its only child.
        foreach (UIElement child in InternalChildren)
        {
            child.Measure(availableSize);
            panelDesiredSize = child.DesiredSize;
        }

        return panelDesiredSize ;
    }
    protected override Size ArrangeOverride(Size finalSize)
    {
        foreach (UIElement child in InternalChildren)
        {
            double x = 50;
            double y = 50;

            child.Arrange(new Rect(new Point(x, y), child.DesiredSize));
        }
        return finalSize; // Returns the final Arranged size
    }
}


.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
© 2013 Microsoft. Tous droits réservés.