title: Can UserControl be used to format content?
body: <p>Let's say I have this UserControl:</p>
  
  <pre><code>&lt;UserControl x:Class="BorderWithHeader"
               xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
               xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
               xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"    
               xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
               mc:Ignorable="d" 
               d:DesignHeight="300" d:DesignWidth="300"&gt;
  
      &lt;StackPanel Orientation="Vertical"&gt;
          &lt;Border BorderThickness="1" BorderBrush="Gray" Height="50"&gt;
              &lt;TextBlock Text="{Binding Header, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" /&gt;
          &lt;/Border&gt;
          &lt;Border BorderThickness="1" BorderBrush="Gray" Height="500"&gt;
              &lt;!--I want to display complex content here (i.e. containers, grids, stackpanels, etc.)--&gt;
          &lt;/Border&gt;
      &lt;/StackPanel&gt;
  &lt;/UserControl&gt;
  </code></pre>
  
  <p>With the following code behind:</p>
  
  <pre><code>public partial class BorderWithHeader : UserControl
  {
      public string Header
      {
          get { return (string)GetValue(HeaderProperty); }
          set { SetValue(HeaderProperty, value); }
      }
  
      public BorderWithHeader()
      {
          InitializeComponent();
      }
  
      public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register("Header", typeof(string), typeof(BorderWithHeader), new FrameworkPropertyMetadata(OnHeaderPropertyChanged));
  
  
      private static void OnHeaderPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
      {
      }
  }
  </code></pre>
  
  <p>I want to use it like this in one of my views:</p>
  
  <pre><code>&lt;viewsCommon:BorderWithHeader Header="Title"&gt;
      &lt;!--I want to define complex content here (i.e. containers, grids, stackpanels, etc.)--&gt;
  &lt;/viewsCommon:BorderWithHeader&gt;
  </code></pre>
  
  <p>The header binding works great, but I can't wrap my mind around how to make the content binding work. Is this even possible or am I approaching this in the wrong way? If so, how should something like this be done instead?</p>