2010-01-20 3 views
1

J'ai un contrôle personnalisé que j'ai créé avec ContentPresenter défini dans generic.xaml. Je peux intégrer avec succès autres contrôles dans le contrôle personnalisé, mais il semble hériter du gestionnaire de mise en page du contrôle personnalisé:Comment spécifier le gestionnaire de disposition à utiliser dans un ContentPresenter dans un contrôle personnalisé dans Silverlight 3/4?

<Style TargetType="custom:Widget"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="custom:Widget"> 
       <Canvas x:Name="LayoutRoot"> 

       <!-- Custom Line, Ellipse code using Canvas from above... --> 

        <Grid> 
        <!-- This more local layout manager is overridden...why ? --> 

         <ContentPresenter x:Name="ContentPresenter" 
              Content="{TemplateBinding Content}" 
              ContentTemplate="{TemplateBinding 
               ContentTemplate}"/> 
        </Grid> 
etc..... 

Dans ce cas, j'utilise un Canvas pour le contrôle personnalisé, alors que je voudrais pour spécifier quelque chose comme Grille en tant que gestionnaire de disposition pour les contrôles ajoutés au contenu. Comment puis-je faire cela ?

Merci,

Scott

+0

Pouvez-vous expliquer ce que vous entendez par « semble hériter du gestionnaire de mise en page du contrôle personnalisé »? Aussi, si vous pouviez poster du xaml, ce serait utile. – KeithMahoney

+0

Il n'y a aucune raison que votre LayoutRoot ne puisse pas être une grille, à moins que quelque chose dans ce Xaml personnalisé ne l'exige. Et même alors, vous pourriez avoir une toile dans cette grille. Peut-être que d'autres informations sur ce que vous essayez de faire aideraient? – Raumornie

+0

Jusqu'à présent, cette question n'a aucun sens, comment un contrôle enfant peut-il avoir un ContentPresenter? Réponses: 1. Ce contrôle enfant peut être une grille, un canevas ou n'importe quoi d'autre donc il peut y avoir d'autres contrôles à l'intérieur, mais c'est le contrôle de l'enfant "de haut niveau" qui dicte la disposition aux autres. – AnthonyWJones

Répondre

1

Scott,

Assurez-vous que votre contrôle personnalisé (personnalisé: Widget) dérive de ContentControl et non de contrôle. Seul ContentControl fait attention aux ContentPresenters dans l'arborescence visuelle.

Jim McCurdy
YinYangMoney

+0

Merci Jim. Je dérive de ContentControl, donc ce n'est pas le problème. –

Questions connexes