如您所知,内置主题都为标准控件(如TreeView控件)定义样式。我们正在尝试创建一个看起来非常像TreeView但实际上不是TreeView的东西,也不是它的子类。它只是有一些部分,为了保持一致性,我们希望看起来像一个部分。
例如,我们的控件也有一个选定项,其背景我们希望与当前主题的TreeView(或更准确地说,TreeView项)中选定项的背景外观相匹配。(您不能简单地使用突出显示颜色,因为主题具有良好的渐变画笔和边框,而不仅仅是一个纯色画笔。)与我们的展开/折叠切换按钮相同。我们希望它们看起来就像在当前主题的树视图中使用的一样。(例如,有时是三角形,有时是带有“+”的方框,等等)
现在,虽然我们可以简单地撕开表达式并自己复制样式(或者至少是我们需要的部分),但对于MS提供的每个主题,我们都必须这样做。另外,这无法处理较新的主题。从一个最纯粹的角度来看,这是重复的样式信息,我只是觉得不对。
另外,如果有人设计了实际的TreeView(项目),我们也要把它捡起来。因为我们要设计的部分是TreeView的必需部分,所以我们很有信心它们在某种风格上是明智的。
甚至不确定我想做什么是可能的,但如果有人知道,他们很可能就在这里!