2012-06-26 49 views
0

我有一个基本的C#WPF TreeView,但我不喜欢展开/折叠图标是三角形,我想用加号/减号图标代替。如何获得XP主题的TreeView展开/折叠图标?

this question,我注意到,您可以设置Windows主题的应用程序,它使用的uxtheme.dll切换到Vista/7的主题,什么是改变的XP主题,以及如何主题DLL您是否在使用修改后的TreeView控件的xaml文件中添加了参考线?

回答

2

了UxTheme.dll提供主题服务,使用通用控制库除了Windows镀铬的部件(如窗口边框和标题栏)和自定义元素,如开始菜单和任务栏应用程序。 UxTheme.dll是2001年推出的Windows XP,但它提供的服务在Windows版本中有所不同。 (XP的Fischer-Price主题),XP“皇家”(MCE2005)和XP的“Luna”矢量图形重新实现,而WPF并不使用UxTheme.dll。 Vista/7 Aero风格。此外,WPF也不使用公共控件库,它对所有主要的Windows控件都有100%的管理重用 - 这就是为什么WPF应用程序倾向于在Windows上落入Uncanny Valley--它们看起来像本机应用程序,但东西 isn对他们没有把握。

我不是一个WPF专家自己,但我知道你可以重写特定元素的渲染,我不知道,如果你能做到这一点没有继承他们,但是。

我很抱歉没有直接回答你的问题,我只是希望我能提供一些有用的见解。

+0

感谢您的信息!它有点多。大声笑我认为我现在就离开它,它不影响应用程序本身的业务关系。 –

1

不幸的是,我相信这需要覆盖TreeView的默认样式和控件模板。以下是MSDN的链接:http://msdn.microsoft.com/en-us/library/ms752048.aspx。如果搜索路径x:名称=“折叠”路径x:名称=“扩展”这是如何绘制箭头。

您可以通过将每个状态的图像替换为Path元素来覆盖此选项。或者,您也可以使用Path元素来绘制类似于所需的+效果的东西。