在学WPF的style,有个问题很困惑,为什么大部分控件的style定义除了TargetTypexxx外还要写x:Key"{x:Typexxx}"?而button的style又不需要写x:Key。比如Menu和Button的style,在MSDN例子里写法分别是
  <Style x:Key="{x:Type Menu}" TargetType="{x:Type Menu}">
    ...
  </Style>  <Style TargetType="Button">
    ...
  </Style>

解决方案 »

  1.   

    如果没有x:Key="{x:Type Menu}" 
    表示用于所有的Button
    加上的话..可以指定到某些个Button使用,而未指定的是不会影响的...
      

  2.   

    2,3楼说的意思我明白。不过在我这个问题里x:Key="{x:Type Menu}"不是个自己起的名字,你们说的情况是这样的吧x:Key="MyKey",是自定义Style的ID。可这个{x:Type Menu}是什么意思呢?
      

  3.   

    http://msdn.microsoft.com/zh-cn/library/ms742804.aspxx:Key 的属性值可以是在 XamlName 语法中定义的任何字符串,也可以是通过标记扩展计算的对象。例如,x:Key 的值可以是 ComponentResourceKey。当某些控件公开可用于创建自定义样式资源的样式键,而这些资源会影响该控件的外观(而不是替换整个控件的样式)时,可以使用此处的方案。ButtonStyleKey 就是这样的一个键。LZ的程序
     <Style x:Key="{x:Type Menu}" TargetType="{x:Type Menu}"> 
        ... 
      </Style> 
    就是用的ComponentResourceKey
      

  4.   

    可以看下这个系列文章:
    在WPF中自定义你的绘制