2013-07-05 149 views
7

我尝试从.Net Framework 4.5中自定义System.Windows.Controls.Ribbon,因此可以使用Expression Dark主题(深色Blend的默认主题)。 我试过以下的思路,但是到现在为止没有任何进展:如何自定义WPF功能区4.5(样式,模板等)

  • 更换色带的背景:将改变只有主 颜色,但保留所有其他颜色光泽,突出的CoLOS等
  • 更改样式和模板:我找不到 Ribbon 4.5的任何默认模板。我试图通过像ShowMeTheTemplate, 这样的工具来获取它们,但似乎它们使用了一些内部类。
  • 使用Blend for VS2012自定义模板:总是出现一个错误“复制模板失败。”
  • 使用.NET 4色带从RibbonControlLibrary:在RibbonWindow 看起来在Windows 8丑(见WPF RibbonWindow + Windows 8 - control box looks bad),我解决不了

任何帮助,将不胜感激,所有的建议都欢迎。

回答

2

您可以通过在功能区设置属性,改变了几个颜色:

<ribbon:Ribbon x:Name="Ribbon" 
        Background="Khaki" 
        BorderBrush="Brown" 
        MouseOverBackground="LightCoral" 
        MouseOverBorderBrush="Coral" 
        PressedBackground="LightGreen" 
        PressedBorderBrush="Green" 
        CheckedBackground="LightBlue" 
        CheckedBorderBrush="Blue" 
        FocusedBackground="LightSlateGray" 
        FocusedBorderBrush="SlateBlue"> 

不完全是一个好看的例子,但说明了如何做到这一点。

是否有兴趣如何做一个完整的重新造型,以及...

+0

再好不过;-) – peter70

2

我能够提取使用Show me the templates一个完全工作的模板。为此,我修改了它以从“System.Windows.Controls.Ribbon”(而不是主框架程序集)中提取模板。

它给了我下面的:

https://gist.github.com/drayde/75526b570a266f5f8f38(太长,粘贴到这里)

只需添加到您的资源,并使用它像这样:

<Ribbon Template="{StaticResource ribbonTemplate}"> 
     ... 
    </Ribbon> 

通过修改你的模板应该完全控制您的色带显示方式。