代码之家  ›  专栏  ›  技术社区  ›  Mark A. Donohoe

为树视图上的展开/折叠按钮设置与当前主题匹配的按钮样式

  •  0
  • Mark A. Donohoe  · 技术社区  · 14 年前

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

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

    现在,虽然我们可以简单地撕开表达式并自己复制样式(或者至少是我们需要的部分),但对于MS提供的每个主题,我们都必须这样做。另外,这无法处理较新的主题。从一个最纯粹的角度来看,这是重复的样式信息,我只是觉得不对。

    另外,如果有人设计了实际的TreeView(项目),我们也要把它捡起来。因为我们要设计的部分是TreeView的必需部分,所以我们很有信心它们在某种风格上是明智的。

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

    1 回复  |  直到 9 年前
        1
  •  0
  •   Mark A. Donohoe    14 年前

    还有一个接近一个月大的问题,甚至没有评论。很奇怪,这样的社区至少一次没有插话!我猜不可能。

    好吧,我们最终做的是使用“显示模板”(Google IT)来获取部件的模板(我们没有表达式),然后自己手动管理它们,而不是使用内置样式。完全不是我们想做的,因为我们不知道如何获得系统中已经定义好的梯度而不复制它们,但是最终结果完全匹配,所以就这样。因此,这也被标记为答案。如果有人真的给了我一个有效的(或足够接近的),我会很乐意改变它。只是需要 某物 人!感觉我在这里发帖!