J'écris une application qui est fondamentalement un concepteur très similaire à Expression Blend ou Visual Studio Designer. Donc, fondamentalement, il y a un tas d'éléments d'interface utilisateur sur une surface de conception et vous pouvez faire des choses telles que drag'n'drop, redimensionner, faire pivoter, etcFaçon générale de définir les limites des éléments
Le contrôle de conteneur principal, qui sera la surface de conception peut être n'importe quel contrôle qui est dérivé de Panel qui inclut des contrôles tels que Canvas, Grid, etc. Cette situtaion, signifiant le support de n'importe quel contrôle dérivé du panel en tant que designesface, soulève un problème où je dois trouver un moyen commun de définir la taille et le contrôle des enfants. cette surface, peu importe le ptype de contrôle de panneau arent est. J'utilise l'appel UIElement.Arrange() pour déplacer/redimensionner les contrôles et cela fonctionne mais une fois la mise en page du contrôle du panneau parent mise à jour, comme lorsque vous le redimensionnez, toutes mes modifications sont réinitialisées à leur valeur par défaut. Je suis également conscient de la logique actuelle de mise en page 2 passes dans les contrôles de panneau WPF, mais il n'y a aucun moyen pour moi de dériver d'un contrôle et de l'utiliser comme un objet de fond. Donc, en bref, existe-t-il un moyen général de réaliser ce que je veux, en définissant la taille/position d'un contrôle enfant dans un contrôle dérivé de panel, comme je le vois? Blend/VS Designer reconnaît comment positionner les contrôles dans un panneau dérivé contrôle? Ou sont-ils également codés en dur pour des contrôles dérivés du Panel?
Merci à l'avance ...
Özden
Merci pour la réponse ... Pour le contrôle de la grille, Margin est utilisé comme vous l'avez dit. Mais, par exemple, lorsque vous utilisez Canvas dans Blend, il définit la propriété Canvas.Left à la place. Je veux juste comprendre si un moyen commun est disponible pour comprendre la capacité du parent et définir la bonne propriété pour le positionnement. Jusqu'ici, toutes mes recherches mènent à un point que ce n'est pas possible, peut-être que blend/VS le code aussi. Peut-être devrais-je plutôt utiliser TranslateTransform, qui est la seule chose que j'ai trouvée commune à tous les scénarios possibles. –