2009-10-19 2 views
6

Jusqu'à présent, j'ai ceci:Est-ce que quelqu'un a un exemple simple d'un UserControl avec un seul ContentPresenter?

<UserControl 
    x:Class="MyConcept.ExpanderPanel" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Grid> 
     <Border 
      Style="{StaticResource Border_PanelStyle}" 
      CornerRadius="3" /> 
     <ContentPresenter /> 
    </Grid> 
</UserControl> 

Exemple d'utilisation de cette UserControl:

<nc:ExpanderPanel 
    Grid.Row="0"> 
    <Expander 
     IsExpanded="True" 
     Header="NMT Users"> 
     <StackPanel> 
      ... 
     </StackPanel> 
    </Expander> 
</nc:ExpanderPanel> 

Discussion

Si je cours, je ne vois rien. Aucun contenu n'est présenté, pas même la bordure intégrée dans UserControl.

Je pensais que je devais peut-être faire à la ContentPresenter une propriété de dépendance, mais je ne pouvais pas comprendre comment je lierais la propriété au ContentPresenter dans le XAML de UserControl.

Quelqu'un peut-il fournir un exemple simple qui montre comment construire un UserControl (ou une sorte de contrôle personnalisé) avec un seul ContentPresenter?

+0

Cela ressemble à ce fera l'affaire: http://blog.pixelingene.com/?p=24 – devuxer

Répondre

4

ContentPresenters sont les principaux utilisés dans ControlTemplates et liés avec un TemplateBinding à ContentControl.Content. de cette site ... un modèle de commande d'un bouton qui utilise un ContentPresenter

<Style TargetType="{x:Type Button}"> 
    <Setter Property="Background" Value="White" /> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate> 
     <Grid> 
      <Rectangle Fill="{TemplateBinding Property=Background}" /> 
      <ContentPresenter 
       Content="{TemplateBinding Property=ContentControl.Content}" /> 
     </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 
+0

Il apparaît maintenant, mais je ne suis pas sûr de savoir comment cela se rapporte à ma question. J'essaie de créer un contrôle personnalisé ou un contrôle utilisateur qui contient un 'ContentPresenter', pas défini le ControlTemplate pour un bouton. – devuxer

+0

vous devez utiliser un ControlTemplate pour votre contrôle, c'est un exemple de la façon de le faire. Fondamentalement, vous devez indiquer au ContentControl COMMENT afficher ce que vous voulez qu'il affiche. Il a un ensemble de modèles "par défaut" pour certaines choses intégrées. http://social.msdn.microsoft.com/forums/en-US/wpf/thread/a2988ae8-e7b8-4a62-a34f-b851aaf13886#contentpresenter –

+0

@ Muad'Dib ... vous êtes image devrait être une souris – macon

Questions connexes