样式:
    <Style TargetType="{x:Type MenuItem}">
        <Setter Property="Background" Value="LightSteelBlue"/>
    </Style>如下代码使用正常:
            MenuItem ww = new MenuItem();
            ww.Header = "copy";
            Editor.Items.Add(ww);下面代码则有问题,无法使用样式的背景色,怎么搞定?    class Paster : MenuItem
    {
        public Paster():base()
        {   
        }
    }    Paster p = new Paster();
    p.Header = "paste";
    Editor.Items.Add(p);   有那位同仁遇到到类似的问题,或指导如何解决?         

解决方案 »

  1.   

    在WPF中,Style是不会自动继承的。你可以这样指定:    <Style TargetType="{x:Type local:Paster}" BaseOn="{x:Type MenuItem}" /> 
      

  2.   

    谢谢,这样可以,不过我工程里所有的菜单项都是用MEF import进来的,没有办法一个一个指定类型样式。
    上面的这段如果换用C#代码如何实现?
      

  3.   

    无解,除非你这段MenuItem的style也是在Paster所在的工程内指定的。
      

  4.   

    搜了一下,也尝试了一些,
    让样式继承目前好像是没什么办法。
    也没找到如何在代码里指定子类的样式继承父类的样式。
    目前,通过如下方式规避:
    C#代码里,在资源字典里查找MenuItem的样式,然后递归遍历所有菜单项,赋值该样式