功能区很棒。我想让它更好......(恕我直言)
使用功能区(来自.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>
但我仍然不知道如何覆盖它。我不知道它在哪里设置...... 干杯,帕特里克
答案 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();
干杯,帕特里克