RibbonControlsLibrary中的样式功能区

时间:2011-03-01 11:48:31

标签: wpf ribbon styling

功能区很棒。我想让它更好......(恕我直言)

使用功能区(来自.NET 3.5 sp1上的RibbonControlsLibrary),可以更改某些背景和前景。但我想重新设计的是白色“面具”(带有alpha的线性渐变画笔),它位于RibbonTabGroup的“背景”中。我用Snoop看到了它。我发现它的风格。

<LinearGradientBrush x:Key="[49] Í" StartPoint="0.5,0.0" EndPoint="0.5,1.0">
    <GradientStop Color="#EEFFFFFF" Offset="0.0" />
    <GradientStop Color="#BBFFFFFF" Offset="0.1" />
    <GradientStop Color="#05FFFFFF" Offset="0.5" />
    <GradientStop Color="#20FFFFFF" Offset="1.0" />
</LinearGradientBrush>

但我仍然不知道如何覆盖它。我不知道它在哪里设置...... 干杯,帕特里克

1 个答案:

答案 0 :(得分:1)

我明白了!

借助以下帖子Serialize a UserControl to xaml, but not its children? [非常感谢你的意愿]。我可以提取“默认”样式。所以我获得了完整的风格。我之前做过的,用.NET Reflector打开RibbonControlsLibrary并用BAML Viewer读取XAML。在我的情况下并不理想。

万一有人有同样的愿望,获得组件的默认样式(当它没有发布@MSDN时):

  System.Windows.Style style = Application.Current.FindResource(typeof(Microsoft.Windows.Controls.Ribbon.Ribbon)) as System.Windows.Style;

  var sb = new System.Text.StringBuilder();
  var writer = System.Xml.XmlWriter.Create(sb, new System.Xml.XmlWriterSettings
  {
    Indent = true,
    ConformanceLevel = System.Xml.ConformanceLevel.Fragment,
    OmitXmlDeclaration = true
  });
  var mgr = new System.Windows.Markup.XamlDesignerSerializationManager(writer);
  mgr.XamlWriterMode = System.Windows.Markup.XamlWriterMode.Expression;
  System.Windows.Markup.XamlWriter.Save(style, mgr);
  string styleString = sb.ToString();

干杯,帕特里克