0

我想做一个ItemsControl提供一些自己的孩子,然后在使用时可以添加其他孩子,类似于内置Expander类。

但是,在此示例中,HeaderTextBlock也被删除。这是我昨天问的一个问题的改写。

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>

主要.xaml:

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

1 回答 1

0

如果我对您的理解正确,您需要更多的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>
于 2010-02-18T00:47:13.113 回答