【问题标题】:How/Where to Find Microsoft Default Styles for WPF Controls如何/在何处查找 WPF 控件的 Microsoft 默认样式
【发布时间】:2012-02-22 12:57:21
【问题描述】:

我希望更改控件的样式,但我基本上想复制默认样式的一部分。有谁知道我如何弄清楚控件的默认样式是什么?

在我的例子中,我想让 DataGrid 中的列标题在鼠标悬停时变成蓝色,就像行标题一样。

【问题讨论】:

标签: c# wpf styles


【解决方案1】:

您可以在this MSDN site 上找到一些非常接近默认值的模板

另一种方法是获取Expression Blend 的副本并使用它来制作默认样式的副本,但是 Blend 不是免费的

【讨论】:

  • 您提供的链接似乎实际上没有默认样式。它提供了如何设置样式的示例(至少对于 DataGrid),但它不是默认设置。我有 Blend 的副本,我将如何使用 Blend 来获取 DataGrid 模板的副本?
  • 该链接包含默认模板,但是为 DataGrid 显示的颜色是自定义的,不会像通常那样从特定于主题的颜色中提取。你必须自己设置它们。如果您只对 DataGrid 的一部分样式感兴趣,我建议您查看this link,或者您可以使用this badly named page 查看使用 Blend 复制样式的示例。
  • 知道默认颜色是什么吗?那些列在某处吗?
  • @KrisTrip 它们因您使用的主题和操作系统设置而异,但您可以找到标准主题的颜色here。您可以使用以下语法将颜色绑定到系统画笔:Foreground="{x:Static SystemColors.ControlTextBrush}"
  • 今天 Blend 在 Visual Studio 2013 社区版中是免费的
【解决方案2】:

与 Rachel 所说的相反,她提供的链接提供默认模板。

我使用System.Windows.Markup.XamlWriter.Save(myObject.Template) 看到默认模板与该站点显示的完全不同。

【讨论】:

  • 你是对的,我发布的第一个链接不是确切的默认值,尽管在大多数情况下我发现它们相当接近。我已经更新了我的答案以澄清这一点,谢谢:)
  • 经过大量搜索,这是唯一适用于 ToggleButton 的方法。甚至 XAML 设计器的 (right click component) > Edit Template > Edit a Copy 功能也提供了错误的模板(切换按钮不切换)。谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 2012-05-09
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
相关资源
最近更新 更多