2010-02-18 5 views
0

Je veux faire un ItemsControl qui fournit certains de ses propres enfants, puis, lorsqu'il est utilisé, peut ajouter des enfants supplémentaires, de la même manière que la classe Expander intégrée.WPF Expander dans Xaml?

Cependant, dans cet exemple, le Header T extBlock est également supprimé. C'est une reformulation de une question I asked yesterday.

LayerPanelItem.xaml:

<ItemsControl x:Class="Controls.LayerPanelItem" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

    <StackPanel> 
     <TextBlock>Header</TextBlock> 
     <StackPanel Name="InnerContent"> 
      <!-- Test 1 and Test 2 should go here. --> 
     </StackPanel> 
    </StackPanel> 

</ItemsControl> 

Main.xaml:

<controls:LayerPanelItem> 
    <TextBlock>Test 1</TextBlock> 
    <TextBlock>Test 2</TextBlock> 
</controls:LayerPanelItem> 

Répondre

0

Si je vous comprends bien, vous voulez plus d'un HeaderedItemsControl. Expander dérive de HeaderedContentControl et cela ajoute dans le comportement ItemsControl que:

<HeaderedItemsControl x:Class="WpfApplication1.LayerPanelItem" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <HeaderedItemsControl.Template> 
     <ControlTemplate TargetType="{x:Type HeaderedItemsControl}"> 
      <StackPanel> 
       <ContentPresenter ContentSource="Header"/> 
       <ItemsPresenter/> 
      </StackPanel> 
     </ControlTemplate> 
    </HeaderedItemsControl.Template> 
    <HeaderedItemsControl.Header> 
     <StackPanel> 
      <TextBlock>Header</TextBlock> 
      <TextBlock>Other stuff...</TextBlock> 
     </StackPanel> 
    </HeaderedItemsControl.Header> 
</HeaderedItemsControl> 
+0

Non, je veux un contrôle réutilisable qui a quelques-uns de ses propres enfants et fournit un conteneur pour ajouter plus d'enfants quand il est utilisé. Mentionner Expander et avoir un en-tête n'était qu'un exemple très simplifié. – JoeCoder

+0

Avez-vous essayé ce code? Si ce n'est pas ce que vous voulez, pourriez-vous fournir plus de détails? Je suis conscient que vous ne voulez pas un Expander mais essayiez de fournir un contexte pour ce qu'est un HeaderedItemsControl. –

+0

J'ai trouvé ceci (http://social.msdn.microsoft.com/forums/en-US/wpf/thread/48a02a96-93d5-4d5a-bf06-53917be73a52/) que j'ai pu réduire à exactement ce dont j'avais besoin . Merci d'avoir essayé. J'ai essayé le code, mais j'ai vu qu'il se limitait à fournir uniquement un en-tête personnalisé. J'avais besoin de quelque chose de similaire à un TreeItem avec un curseur, une zone de texte, quelques images et une disposition plutôt personnalisée. – JoeCoder