WPF Expander в Xaml? - PullRequest
       10

WPF Expander в Xaml?

0 голосов
/ 18 февраля 2010

Я хочу создать ItemsControl, который предоставляет некоторых своих дочерних элементов, и затем при использовании может добавить дополнительных дочерних элементов, подобно встроенному классу Expander.

Однако в этом примере Header T extBlock также удаляется. Это перефразирование вопрос я вчера задавал .

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>

1 Ответ

0 голосов
/ 18 февраля 2010

Если я вас правильно понимаю, вам нужно больше HeaderedItemsControl. Expander происходит от HeaderedContentControl, и это добавляет в поведение ItemsControl к этому:

<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>
...