覆盖ControlTemplate - 而不是样式

时间:2010-08-03 10:00:51

标签: wpf override styles controltemplate

我正在覆盖按钮内容。我的问题是,当我这样做时,按钮的默认Style被覆盖。 如何保持旧样式(旧样式定义鼠标悬停,鼠标悬停效果等)?

这是我的代码:

 <Fluent:DropDownButton SizeDefinition="Small">                                                              
     <Fluent:DropDownButton.Template>    
         <ControlTemplate>                                                                          
             <StackPanel>
                 <Label Content="A" FontFamily="Times New Roman" FontSize="11"/>
                 <Polygon Points="0,0 0,15 15,15 15,0"
                          Stroke="{Binding Fill}" 
                          StrokeThickness="5">                                               
                 </Polygon>
             </StackPanel>
         </ControlTemplate>
     </Fluent:DropDownButton.Template>
     <ColorSelectorModule:ColorGallery/>
 </Fluent:DropDownButton>

P.S。:我知道这是一个特定图书馆控制的问题。但是,我没有在该项目的论坛上得到任何回复。

进一步解释Fluent的属性:Dr​​opDownButton: 按钮的内容(Fluent:DropDownButton-Tags之间的代码)不确定按钮中的内容,而是按钮的DropDownMenu中显示的内容。这就是为什么我必须修改按钮本身的内容(单击以激活DrowDownMenu的区域)。

我在这里尝试编码的是FontColor-Button,其行为类似于Word-FontColor-Button,您可以在其中看到按钮内栏中的当前颜色。


对于任何有兴趣的人,这里是我在Fluent项目页面上的解决方案的链接:http://fluent.codeplex.com/Thread/View.aspx?ThreadId=221817

1 个答案:

答案 0 :(得分:0)

您只是更改模板,模板定义您所谈论的行为而不是样式,没有模板继承,因此您必须手动复制旧模板中的所有行为