【问题标题】:How do I get XP themed TreeView expand/collapse icons?如何获得以 XP 为主题的 TreeView 展开/折叠图标?
【发布时间】:2012-06-26 19:43:31
【问题描述】:

我有一个基本的 C# WPF TreeView,但我不喜欢展开/折叠图标是三角形,我想改用加号/减号图标。

来自this question,我注意到你可以为应用程序设置Windows Theme,它使用uxtheme.dll来更改为Vista/7主题,更改的主题DLL是什么到 XP 主题,如何在使用修改后的 TreeView 控件的 xaml 文件中添加参考线?

【问题讨论】:

    标签: c# wpf dll treeview themes


    【解决方案1】:

    UxTheme.dll 为使用 Common Control 库的应用程序提供主题服务,此外还有 Windows chrome 的部分(例如窗口边框和标题栏)和自定义元素(例如开始菜单和任务栏)。 UxTheme.dll 于 2001 年随 Windows XP 引入,但它提供的服务因 Windows 版本而异。

    WPF 不使用 UxTheme.dll 作为其主题 - 所有 WPF“视觉样式”实际上都是 XP“Luna”(XP 的 Fischer-Price 主题)、XP“Royale”(MCE2005)和 Vista 的矢量图形重新实现/7 航空风格。此外,WPF 也不使用 Common Controls 库,它对所有主要的 Windows 控件进行 100% 托管的重新实现——这就是 WPF 应用程序在 Windows 上倾向于落入 Uncanny Valley 的原因——它们看起来像本机应用程序,但 对他们不正确。

    我自己不是 WPF 专家,但我知道您可以覆盖特定元素的呈现,但是我不知道您是否可以在不继承它们的情况下做到这一点。

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

    【讨论】:

    • 感谢您的信息!它有点多。哈哈,我想我现在就让它保持原样,它不会影响应用程序本身的业务关系。
    【解决方案2】:

    不幸的是,我认为这需要覆盖 TreeView 的默认样式和控件模板。这是 MSDN 的链接:http://msdn.microsoft.com/en-us/library/ms752048.aspx。如果您搜索 Path x:Name="Collapsed"Path x:Name="Expanded",这就是绘制箭头的方式。

    您可以通过将 Path 元素与每个状态的 Image 交换来覆盖此设置。或者,您也可以使用 Path 元素来绘制类似于您想要的 + - 效果的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 2012-11-15
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      • 1970-01-01
      相关资源
      最近更新 更多