title: WPF balloon notes adjusts around focal point
body: <p>What I'd like to do is have a balloon note that when moving the stem of the note adjusts.  Think of it like a comic book.  You have balloon notes above and below.  The stem changes.  I want it to be dynamic when moving or resizing the note.  I'm not asking for a full solution I'm trying to learn how to do it.  Perhaps references to ideas.  Right now I just have the standard balloon note being note being made.  </p>
  
  <pre><code>&lt;Window x:Class="WpfApplication2.MainWindow"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="TestNote" SizeToContent="WidthAndHeight"
      MouseLeftButtonDown="Window_MouseLeftButtonDown"
      WindowStyle="None"
      AllowsTransparency="True"
      Background="Transparent"&gt;
  &lt;Canvas Width="400" Height="400" Name="Main" &gt;
      &lt;Path Stroke="Gray" StrokeThickness="2" Name="testPath" Height="206.97" Stretch="Fill" Width="273.448" &gt;
          &lt;Path.Fill &gt;
              &lt;SolidColorBrush Color="Khaki"&gt;&lt;/SolidColorBrush&gt;
          &lt;/Path.Fill&gt;
          &lt;Path.Data&gt;
              &lt;CombinedGeometry GeometryCombineMode="Union"&gt;
                  &lt;CombinedGeometry.Geometry1&gt;
                      &lt;RectangleGeometry Rect="0,0,100,100" RadiusX="10" RadiusY="10"/&gt;
                  &lt;/CombinedGeometry.Geometry1&gt;
                  &lt;CombinedGeometry.Geometry2&gt;
                      &lt;PathGeometry &gt;
                          &lt;PathFigure StartPoint="50,25"&gt;
                              &lt;ArcSegment Size="100,100" RotationAngle="45"
                                  SweepDirection="CounterClockwise" Point="25,25" /&gt;
                              &lt;LineSegment Point="0,150"/&gt;
                          &lt;/PathFigure&gt;
                      &lt;/PathGeometry&gt;
                  &lt;/CombinedGeometry.Geometry2&gt;
              &lt;/CombinedGeometry&gt;
          &lt;/Path.Data&gt;
      &lt;/Path&gt;
  &lt;/Canvas&gt;
  &lt;/Window&gt;
  
  public partial class MainWindow : Window
  {
      public MainWindow()
      {
          InitializeComponent();
      }
      private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
      {
          this.DragMove();
      }  
  }
  </code></pre>