Following code
<local:UserControl1> <Button>Click me</Button> </local:UserControl1>
So, for this button, you set the UserControl1 Content property. This button simply replaces this markup for UserControls1 . So, everything you have in UserControl1.xaml no longer exists.
EDIT
If you want your UserControl to post some markup that will be installed somewhere outside of it, you can add DependencyProperty to it, for example:
/// <summary> /// Gets or sets additional content for the UserControl /// </summary> public object AdditionalContent { get { return (object)GetValue(AdditionalContentProperty); } set { SetValue(AdditionalContentProperty, value); } } public static readonly DependencyProperty AdditionalContentProperty = DependencyProperty.Register("AdditionalContent", typeof(object), typeof(CalibrationPoint), new PropertyMetadata(null));
And add some markup element to it to accommodate this additional content. Here is an example of the markup extension you provided:
<UserControl ... Name="userControl"> <Grid Background="LightBlue"> <Grid.RowDefinitions> <RowDefinition Height="50" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <TextBlock Text="Title" FontSize="30" Margin="10,0,0,0"/> <ContentPresenter Content="{Binding AdditionalContent, ElementName=userControl}" /> </Grid> </UserControl>
Now you can use it like:
<local:UserControl1> <local:UserControl1.AdditionalContent> <Button>Click me</Button> </local:UserControl1.AdditionalContent> </local:UserControl1>
EvAlex May 03 '12 at 7:53 a.m. 2012-05-03 07:53
source share