2010-02-16 4 views
3

У меня есть UserControl, что я хотел бы иметь более одного ребенка. У него уже есть StackPanel, так как он ребенок, так что я делаю неправильно?WPF UserControl с несколькими детьми

В конечном счете, я хотел бы, чтобы элемент управления автоматически включал некоторые из его собственных детей, а затем, когда он используется, позволяет размещать больше детей внутри одного из его элементов. Я пробовал MSDN's How to Override the Logical Tree без успеха.

Заранее спасибо.

LayerPanelItem.xaml:

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

Main.xaml:

<controls:LayerPanelItem> 
    <TextBlock>Test</TextBlock> 
    <TextBlock>Test</TextBlock> <!-- Error: The property 'Content' is set more than once. --> 
</controls:LayerPanelItem> 

ответ

2

Вы не можете сделать это (непосредственно) с UserControl. Вместо этого вам нужно будет получить от ItemsControl и поместить свою собственную логику компоновки в подкласс.

+0

Рид верен. Вот почему вы не можете этого сделать: Когда обрабатывается XAML в LayerPanelItem.xaml, устанавливается свойство Content UserControl. Таким образом, вы эффективно пытаетесь использовать контент для двух разных целей. –

0

Попробуйте добавить сетку в UserControl и добавить остальную часть ребенка в эту сетку.

Смежные вопросы