Silverlight - укажите содержимое стековой панели пользовательского элемента управления в родительском элементе - PullRequest
1 голос
/ 22 сентября 2010

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

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

В родительском объекте RibbonTabX я хочу указать дочернее содержимое стековой панели в моем пользовательском элементе управления RibbonTabX. Точно так же, как вы можете сделать с элементом управления TabItem. Есть идеи, как мне это сделать?

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 сентября 2010

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

Начать с этой статьи

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

0 голосов
/ 22 сентября 2010

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

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

Вот самый простой возможный ContentControl:1005 *

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...