我有一个基本的C#WPF TreeView,但我不喜欢展开/折叠图标是三角形,我想改用加号/减号图标。
从this question,我注意到您可以为应用程序设置Windows主题,并使用 uxtheme.dll 更改为Vista / 7主题,主题DLL是什么更改为XP主题以及如何在使用修改后的TreeView控件的xaml文件中添加引用行?
答案 0 :(得分:2)
UxTheme.dll除了部分Windows镶边(例如窗口边框和标题栏)和自定义元素(如开始菜单和任务栏)外,还为使用公共控件库的应用程序提供主题服务。 UxTheme.dll是在2001年推出的Windows XP,但它提供的服务因Windows版本而异。
WPF不使用UxTheme.dll作为其主题 - 所有WPF“视觉样式”实际上是XP“Luna”(XP的Fischer-Price主题),XP“Royale”(MCE2005)和Vista的矢量图形重新实现/ 7 Aero风格。此外,WPF也没有使用Common Controls库,它具有所有主要Windows控件的100%管理重新实现 - 这就是为什么WPF应用程序倾向于落入Windows上的Uncanny Valley - 它们看起来像本机应用程序,但是某些东西对他们不对。
我自己不是WPF专家,但我知道你可以覆盖特定元素的渲染,但我不知道你是否可以在没有子类化的情况下做到这一点。
我为没有直接回答你的问题而道歉,我希望我能提供一些有用的见解。
答案 1 :(得分:1)
不幸的是,我认为这需要覆盖TreeView的默认样式和控件模板。以下是MSDN的链接:http://msdn.microsoft.com/en-us/library/ms752048.aspx。如果您搜索路径x:名称="折叠" 和路径x:名称="展开" 这是箭头的方式绘制。
您可以通过将Path元素与每个状态的图像交换来覆盖它。或者,您也可以使用Path元素绘制类似于您想要的+效果的内容。