title: TargetType does not match type of element
body: <p>I have a simply buttonStyle defined for <code>TargetType</code> of <code>Button</code>; but setting the style to button gives an exeption.</p>
  
  <pre><code>&lt;Window&gt;
      &lt;Window.Resources&gt;
          &lt;Style x:Key="buttonStyle" TargetType="{x:Type Button}"&gt;
              &lt;Setter Property="Background" Value="Magenta"/&gt;
          &lt;/Style&gt;
      &lt;/Window.Resources&gt;
      &lt;StackPanel Orientation="Horizontal"&gt;
          &lt;Button Content="1" FocusVisualStyle="{StaticResource buttonStyle}"/&gt;
      &lt;/StackPanel&gt;
  &lt;/Window&gt;
  </code></pre>
  
  <blockquote>
    <p>Additional information: 'Button' TargetType does not match type of
    element 'Control'.</p>
  </blockquote>
  
  <hr>
  
  <p>Further, setting the <code>TargetType</code> as <code>Control</code> removes the run-time error, but visual style of button doesn't change when it gets <code>Focus</code>.</p>
  
  <hr>
  
  <p>Style works when set as <code>Button.Style</code></p>
  
  <hr>
  
  <p><strong>Edit</strong>
  I have two specific questions:</p>
  
  <ol>
  <li><p>I agree to the fact that <code>FocusVisualStyle</code> is a property of <code>FrameworkElement</code> and <code>FrameworkContentElement</code>, but why is there an error setting it on button, despite the fact that Style is a <em>namedstyle</em> and not a <em>typedstyle</em> ?</p></li>
  <li><p>Why does <code>FocusVisualStyle</code> don't get rendered on the <code>Button</code>? Is the <code>Button.FocusVisualStyle</code> over-ridden internally by any higher priority value like Templates, Triggers or Template Triggers ?</p></li>
  </ol>