【问题标题】:Style a button to match the current theme for the expand/collapse button on a TreeView设置按钮样式以匹配 TreeView 上展开/折叠按钮的当前主题
【发布时间】:2010-10-16 03:48:39
【问题描述】:

如您所知,内置主题都定义了标准控件(例如 TreeView 控件)的样式。我们正在尝试创建一个看起来非常像 TreeView 但实际上不是 TreeView 的东西,也不是 TreeView 的子类。它只是有一些我们希望看起来像一个以保持一致性的部分。

例如,我们的控件也有一个选定项,我们希望其背景与当前主题的 TreeView(或更准确地说是 TreeViewItem)中选定项的背景外观相匹配。 (您不能简单地使用高亮颜色,因为主题有很好的渐变画笔和边框,而不仅仅是纯色画笔。)与我们的展开/折叠切换按钮相同。我们希望它们看起来就像在当前主题的 TreeView 中使用的一样。 (即有时是一个三角形,有时是一个带有“+”的框,等等)

现在,虽然我们可以简单地打开 Expression 并自己复制样式(或至少是我们需要的部分),但我们必须为 MS 提供的每个主题都这样做。另外,这不会处理较新的主题。从最纯粹的角度来看,这是重复的样式信息,这对我来说是错误的。

此外,如果有人为实际的 TreeView(Item) 设置样式,我们也希望将其拾取。由于我们想要设置样式的部分是 TreeView 的必需部分,因此我们确信它们在样式方面存在于某个地方。

甚至不确定我想要做什么,但如果有人知道,他们很可能在这里!

【问题讨论】:

    标签: wpf templates themes custom-controls


    【解决方案1】:

    又一个问题接近一个月,甚至没有评论。对于 SO 社区来说,至少一次不参与是非常奇怪的!估计是不可能的。

    好吧,我们最终做的是使用“Show Me The Template”(Google 搜索)来获取零件的模板(我们没有 Expression),然后自己手动管理它们,而不是使用内置的样式。根本不是我们想要做的,因为我们不知道如何在不复制它们的情况下获得系统中定义的漂亮渐变,但最终结果确实完美匹配,所以就是这样。因此,这也被标记为答案。如果其他人真的给了我一个有效的(或足够接近)我会很乐意改变它!只需要东西人!感觉就像我在这里发帖一样!

    【讨论】:

    • 除了我们必须做的事情之外,仍然希望有人在这里提出答案!
    猜你喜欢
    • 2010-12-02
    • 2014-08-03
    • 1970-01-01
    • 2016-11-02
    • 2015-07-18
    • 2016-05-31
    • 2019-08-20
    • 2020-01-13
    • 2011-07-11
    相关资源
    最近更新 更多