La documentation du prisme indique qu'il ya trois adaptateurs disponibles: régionComment utiliser un panneau comme région dans Prism?
ContentControlRegionAdapter. Cet adaptateur adapte les contrôles de type
System.Windows.Controls.ContentControl
et les classes dérivées.SelectorRegionAdapter. Cet adaptateur adapte les contrôles dérivés de la classe
System.Windows.Controls.Primitives.Selector
, tels que le contrôleSystem.Windows.Controls.TabControl
.ItemsControlRegionAdapter. Cet adaptateur adapte les contrôles de type
System.Windows.Controls.ItemsControl
et les classes dérivées.
Malheureusement, Panel
ne tombe pas dans l'une de ces catégories, et je veux être en mesure d'écrire dans mon .xaml.cs
:
<Canvas cal:RegionManager.RegionName="{x:Static local:RegionNames.MainCanvas}">
Comment pouvons-nous y arriver?
Le problème ici est que la toile n'impose aucune mise en page. Vous allez rencontrer des problèmes à moins que vous ne rendiez votre regionadapter un peu plus intelligent quant au placement des éléments qui sont enregistrés dans cette région (c'est aussi la raison pour laquelle Panel n'est pas supporté). Je suis curieux ... quelle application avez-vous pour cela? –
Je suis en train de mettre à jour une base de code existante qui a des conteneurs de contrôle flottants (comme des barres d'outils) qui devraient être à l'intérieur d'un canevas. Ils gèrent leur propre "barre de titre" région et mettent à jour leur position de toile sur glisser. Évidemment, cela pourrait être accompli d'autres façons, mais, comme toujours, le temps est essentiel et cela semble être le moyen le plus rapide de convertir la structure existante pour travailler avec Prism. – Jedidja
Avoir une mise à jour de contrôle sa position semble un peu illogique ... sorte de "sortir de votre boîte". +1 pour pouvoir convertir la base de code existante. –