2010-09-22 3 views
1

Создал пользовательский элемент управления, называемый «RibbonTabX», который содержит стекную папку с именем «spMain». То, что я хотел бы сделать, это когда я объявляю экземпляр своего «RibbonTabX» в xaml, в пределах того же самого xaml, я бы хотел указать элементы управления, которые будут внутри дочернего стекаPanel spMain. Вот код, который будет делать то, что я пытаюсь сделать гораздо яснее:Silverlight - указать содержимое стека в пользовательском элементе управления в родительском

<ribbon:RibbonTabX strHeaderText="Testing 123..."> 
      <ribbon:RibbonTabX.spMain> 
       <sdk:Label Content="Hello" /> 
       <sdk:Label Content="World" /> 
      </ribbon:RibbonTabX.spMain> 
    </ribbon:RibbonTabX> 

В родителю RibbonTabX, я хочу, чтобы указать ребенок содержимого StackPanel в моем пользовательском элементе управления "RibbonTabX. Точно так же, как вы можете использовать элемент управления TabItem. Любые идеи, как я могу это сделать?

Спасибо!

ответ

1

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

Start with this article

Это более сложный, чем пользовательский элемент управления, как вы должны вручную корабль общий шаблон для него, но они более универсальны.

+0

Отлично! Это то, что мне нужно было знать. Благодаря! – Rob

0

Вы хотите использовать ContentControl. Вместо того, чтобы указывать, что эти элементы управления входят в панель стека, вы, вероятно, должны просто разместить содержимое на панели стека. Пусть ваш RibbonTabX происходит из ContentControl, а не из UserControl, тогда, когда это целесообразно, введите <ContentPresenter />, тогда пользователь ленты может вставить в него все.

<ribbon:RibbonTabX strHeaderText="Testing 123..."> 
      <StackPanel> 
       <sdk:Label Content="Hello" /> 
       <sdk:Label Content="World" /> 
      </StackPanel> 
</ribbon:RibbonTabX> 

Вот самые основные ContentControl возможно:

<ContentControl x:Class="SilverlightControl1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Grid x:Name="LayoutRoot" Background="Orange"> 
     <ContentPresenter /> 
    </Grid> 
</ContentControl> 
+0

Отлично, спасибо! – Rob