【发布时间】:2023-03-26 07:07:01
【问题描述】:
是否可以在 .NET CF 3.5 的 StatusBar 控件上嵌入图标?
【问题讨论】:
标签: c# .net windows-mobile compact-framework mobile
是否可以在 .NET CF 3.5 的 StatusBar 控件上嵌入图标?
【问题讨论】:
标签: c# .net windows-mobile compact-framework mobile
Compact Framework 的 StatusBar 控件非常、非常基础并且功能有限。它不支持添加图像甚至多个面板。这部分是由于 CF 团队 (IMO) 的懒惰,部分是由于操作系统的限制。
操作系统状态栏通用控件最多支持 255 个面板。 CF 团队不允许超过一个。这纯粹是懒惰,但至少你可以通过子类化它并向它发送一个 SB_SETPARTS 消息来解决它。这需要相当多的 P/Invoking 才能让它全部工作,所以除非你真的需要,否则我会避免它。
但是,本机控件甚至不支持图像。您可以将其子类化,然后自己处理 WM_PAINT 并绘制您的图标。我没有尝试过,但这似乎是一种合理的方法。这也需要对所有 GDI 内容进行一些丑陋的本机调用。这可能会导致内存泄漏或访问冲突,因此除非您真的需要它并且对旧的 Win32 绘画感到满意,否则您可能会在决定这条路线之前尝试提出替代解决方案。
【讨论】: