title: WindowChrome with AllowsTransparency = true and WindowStyle = None issues
body: <p>I have an application that i override the main shell style with windowchrome, as follow:</p>
  
  <p><strong>XAML:</strong></p>
  
  <pre><code>    &lt;Style TargetType="{x:Type local:MainLayoutWindow}"&gt;
      &lt;Setter Property="shell:WindowChrome.WindowChrome"&gt;
          &lt;Setter.Value&gt;
              &lt;shell:WindowChrome 
                      GlassFrameThickness="0"
                      ResizeBorderThickness="7"
                      CaptionHeight="36"
                      CornerRadius="3"                    
                      /&gt;
          &lt;/Setter.Value&gt;
      &lt;/Setter&gt;
      &lt;Setter Property="WindowState" Value="Maximized" /&gt;
      &lt;Setter Property="Template"&gt;
          &lt;Setter.Value&gt;
              &lt;ControlTemplate TargetType="{x:Type local:MainLayoutWindow}"&gt;
                  &lt;Border&gt;
                      &lt;Border.Style&gt;
                          &lt;Style TargetType="{x:Type Border}"&gt;
                              &lt;Setter Property="BorderThickness" Value="{Binding WindowResizeBorderThickness}"/&gt;
                          &lt;/Style&gt;
                      &lt;/Border.Style&gt;
                      &lt;Grid x:Name="Root" &gt;
  
                          &lt;Grid&gt;
                              &lt;!-- Content Border --&gt;
  
                              &lt;!-- Header --&gt;
  
                          &lt;/Grid&gt;
                          &lt;!-- Buttons --&gt;
                          &lt;Border BorderBrush="{StaticResource WindowButtonOutline}" BorderThickness="1,0,1,1" CornerRadius="0,0,3,3" VerticalAlignment="Top" Margin="7,1,0,0" HorizontalAlignment="Left"&gt;
                              &lt;StackPanel Orientation="Horizontal"&gt;
  
                                  &lt;Button x:Name="PART_btnClose"   Height="17" Width="35" IsTabStop="False" shell:WindowChrome.IsHitTestVisibleInChrome="True" &gt;
  
                                  &lt;/Button&gt;
                                  &lt;Button x:Name="PART_btnMaxAndNormal" Height="17" Width="24" IsTabStop="False" shell:WindowChrome.IsHitTestVisibleInChrome="True" &gt;
  
                                  &lt;/Button&gt;
                                  &lt;Button x:Name="PART_btnMinimize"   Height="17" Width="24" IsTabStop="False" shell:WindowChrome.IsHitTestVisibleInChrome="True" &gt;
  
                                  &lt;/Button&gt;
  
                              &lt;/StackPanel&gt;
  
  
                          &lt;/Border&gt;
                      &lt;/Grid&gt;
                  &lt;/Border&gt;
  
                  &lt;ControlTemplate.Triggers&gt;
  
                      &lt;Trigger Property="WindowState" Value="Maximized"&gt;
                          &lt;Setter Property="shell:WindowChrome.WindowChrome"&gt;
                              &lt;Setter.Value&gt;
                                  &lt;shell:WindowChrome ResizeBorderThickness="0"/&gt;
                              &lt;/Setter.Value&gt;
                          &lt;/Setter&gt;
                      &lt;/Trigger&gt;
                      &lt;Trigger Property="WindowState" Value="Normal"&gt;
                          &lt;Setter Property="shell:WindowChrome.WindowChrome"&gt;
                              &lt;Setter.Value&gt;
                                  &lt;shell:WindowChrome ResizeBorderThickness="7"/&gt;
                              &lt;/Setter.Value&gt;
                          &lt;/Setter&gt;
                      &lt;/Trigger&gt;
  
                  &lt;/ControlTemplate.Triggers&gt;
              &lt;/ControlTemplate&gt;
          &lt;/Setter.Value&gt;
      &lt;/Setter&gt;
  &lt;/Style&gt;
  </code></pre>
  
  <p><strong>CS:</strong></p>
  
  <pre><code>    public MyWindow()
      {
          this.AllowsTransparency = true;
          this.WindowStyle = System.Windows.WindowStyle.None;
          this.Caption = "some text";
          this.StateChanged += MainLayoutWindow_StateChanged;
      }
  
      void MainLayoutWindow_StateChanged(object sender, EventArgs e)
      {
          if (this._myVM== null) return;
          this._myVM.SetState(this.WindowState);
      }
  
      public MyWindow(MyVM myVM)
          : this()
      {
          this.DataContext = mainVM;
          this._myVM= myVM;
      }
  
      Thickness _maximizeThickness = new Thickness(8, 8, 8, 8);
      Thickness _normalThickness = new Thickness(0, 0, 0, 0);
      Thickness _windowResizeBorderThickness = new Thickness(0, 0, 0, 0);
      const string WINDOWRESIZEBORDERTICKNESS = "WindowResizeBorderThickness";
      public Thickness WindowResizeBorderThickness
      {
          get
          {
              return _windowResizeBorderThickness;
          }
          set
          {
              if (_windowResizeBorderThickness != value)
              {
                  _windowResizeBorderThickness = value;
                  OnPropertyChanged(WINDOWRESIZEBORDERTICKNESS);
              }
          }
      }
  
      public void SetState(WindowState windowState)
      {
          if (windowState == WindowState.Maximized)
          {
              WindowResizeBorderThickness = _maximizeThickness;
          }
          else
          {
              WindowResizeBorderThickness = _normalThickness;
          }
      }
  </code></pre>
  
  <p><strong>Issues:</strong></p>
  
  <ol>
  <li>If I don't using <code>AllowsTransparency = true</code> and <code>WindowStyle=None</code>, it seems that sometimes is see the original buttons before the style is loaded. Or if have any action against the server that takes long time.</li>
  <li>If I set <code>AllowsTransparency = true</code> and <code>WindowStyle=None</code>, the app is taken all width and height of screen (the taskbar is not showing).</li>
  <li>For multiple screens, when the app is open in maximize mode on the primary screen and I moved to secondary screen with maximize mode id does it but I cannot do it from secondary screen to primary screen, it not allow to move to maximize mode.</li>
  </ol>
  
  <p>Any ideas? thanks</p>