我有一个基本的C# WPF TreeView,但我不喜欢展开/折叠图标是三角形,我想使用加/减图标。
从this question中,我注意到您可以为应用程序设置uxtheme.dll主题,它使用uxtheme.dll更改为Vista/7主题,更改为XP主题的主题DLL是什么,以及如何在使用修改的TreeView控件的xaml文件中添加引用行?
发布于 2012-06-26 20:00:00
除了Windows的一部分(如窗口边框和标题栏)和自定义元素(如start菜单和任务栏)之外,UxTheme.dll还使用公共控制库向应用程序提供主题服务。UxTheme.dll是在2001年与Windows一起推出的,但是它提供的服务在不同的Windows版本之间有所不同。
WPF不使用UxTheme.dll作为其主题--所有WPF“视觉样式”实际上都是XP“露娜”( XP的Fischer-Price主题)、XP "Royale“(MCE2005)和Vista/7 Aero样式的图形重新实现。此外,WPF也不使用公共控件库,它拥有所有主要Windows控件的100%管理的重实现--这就是为什么WPF应用程序往往会落入Windows上的神秘谷--它们看起来像本地应用程序,但有些地方不对劲。
我本人并不是WPF专家,但我知道您可以覆盖特定元素的呈现,但是,我不知道您是否可以在不对它们进行子类的情况下这样做。
我很抱歉没有直接回答你的问题,我只是希望我能提供一些有用的见解。
发布于 2012-06-26 20:26:46
不幸的是,我认为这需要重写TreeView的默认样式和控制模板。下面是指向MSDN:http://msdn.microsoft.com/en-us/library/ms752048.aspx的链接。如果搜索Path x:Name=“折叠的”和Path x:Name=展开“”,则箭头是这样绘制的。
您可以通过为每个状态使用Image交换Path元素来覆盖这一点。或者,您也可以使用Path元素来绘制类似于您想要的+效果的东西。
https://stackoverflow.com/questions/11214833
复制相似问题