Silverlight-指定父控件中用户控件的stackpanel内容

Silverlight-指定父控件中用户控件的stackpanel内容,silverlight,user-controls,layout,Silverlight,User Controls,Layout,我创建了一个名为“RibbonTabX”的用户控件,其中包含一个名为“spMain”的stackpanel。我想做的是,当我在xaml中声明我的“RibbonTabX”的一个实例时,在同一个xaml中,我想指定将位于子stackPanel“spMain”中的控件。下面的代码将使我试图做的事情更加清晰: <ribbon:RibbonTabX strHeaderText="Testing 123..."> <ribbon:RibbonTabX.spMain&

我创建了一个名为“RibbonTabX”的用户控件,其中包含一个名为“spMain”的stackpanel。我想做的是,当我在xaml中声明我的“RibbonTabX”的一个实例时,在同一个xaml中,我想指定将位于子stackPanel“spMain”中的控件。下面的代码将使我试图做的事情更加清晰:

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

在RibbonTabX的父级中,我希望在用户控件“RibbonTabX”中指定stackpanel的子内容。就像使用“TabItem”控件一样。你知道我该怎么做吗


谢谢

您需要创建自定义内容控件,而不是用户控件


它比用户控件更复杂,因为您必须为它手工制作一个通用模板,但它们更通用。

您需要创建一个自定义内容控件,而不是用户控件


它比用户控件更复杂,因为您必须为它手工制作一个通用模板,但它们更通用。

您想要使用ContentControl。与其指定这些控件放在堆栈面板中,不如将内容放在堆栈面板中。让您的RibbonTabX从ContentControl而不是UserControl派生,然后在适当的地方放入
,然后功能区的用户可以将任何内容放入其中

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

您想使用ContentControl。与其指定这些控件放在堆栈面板中,不如将内容放在堆栈面板中。让您的RibbonTabX从ContentControl而不是UserControl派生,然后在适当的地方放入
,然后功能区的用户可以将任何内容放入其中

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


完美!这正是我需要知道的。谢谢完美的这正是我需要知道的。谢谢