這裏是做你想要什麼的一種方式的示例:
首先,代碼 - UserControl1.xaml.cs
public partial class UserControl1 : UserControl
{
public static readonly DependencyProperty MyContentProperty =
DependencyProperty.Register("MyContent", typeof(object), typeof(UserControl1));
public UserControl1()
{
InitializeComponent();
}
public object MyContent
{
get { return GetValue(MyContentProperty); }
set { SetValue(MyContentProperty, value); }
}
}
而且用戶控件的XAML - UserControl1.xaml
<UserControl x:Class="InCtrl.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300" Name="MyCtrl">
<StackPanel>
<Button Content="Up"/>
<ContentPresenter Content="{Binding ElementName=MyCtrl, Path=MyContent}"/>
<Button Content="Down"/>
</StackPanel>
</UserControl>
最後,XAML使用我們美好的新控制:
<Window x:Class="InCtrl.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:me="clr-namespace:InCtrl"
Title="Window1" Height="300" Width="300">
<Grid>
<me:UserControl1>
<me:UserControl1.MyContent>
<Button Content="Middle"/>
</me:UserControl1.MyContent>
</me:UserControl1>
</Grid>
</Window>
來源
2009-06-09 14:56:34
Nir
接受的答案什麼問題呢?這聽起來很容易...... – Tony 2009-06-09 12:39:23
問題不在於收集和導航按鈕,而在於我希望在另一個應用程序中使用它時,可以將控件添加到用戶控件中。 – 2009-06-09 12:52:28
如果我嘗試在和之間放置多個控件,那麼我只能在其中放置一個控件。如果我嘗試一個網格,我的自定義控件上的控件就會消失。 –
2009-06-09 13:20:05