【问题标题】:How can I render the bitmap property of a .NET Compact Framework custom control in the Visual Studio form designer?如何在 Visual Studio 表单设计器中呈现 .NET Compact Framework 自定义控件的位图属性?
【发布时间】:2011-02-11 06:57:15
【问题描述】:

我有一个具有位图属性的自定义控件(继承自 control;针对 .NET Compact Framework v2)。

目前,表单设计器上的控件实例只会绘制选定的背景颜色并在顶部写入namespace.control.name

在属性编辑器中选择图像后,如何让表单设计器呈现图像?

编辑:该控件相当基本,但我将覆盖onpaintonpaintbackground

Edit2:为了确定原因,我编写了一个更简单的控件。它只是一个位图属性和在onpaint 中对graphics.drawimage 的调用(所以很便宜imagebutton)。这也无法渲染。我什至包括了一个检查,以确保它没有尝试渲染空图像并且从不刷新或任何东西,但是没有运气。

【问题讨论】:

  • 我希望你得到一个真正的答案,但我必须在这里评论一下,让自定义控件在运行时正确呈现可能已经够难的了。试图让它在设计师中也看起来正确可能需要更多的工作而几乎没有任何收获(除非这是您计划出售的第三方产品)。
  • 一旦你让它工作起来,你必须尝试让它再次为 CF 3.5 工作。我完全不同意让设计师把它做好几乎不值得付出努力。
  • 这不是很让人放心:( ...至少它是供内部使用的,我可以跳过让它正确渲染

标签: visual-studio compact-framework custom-controls


【解决方案1】:

您是否手动绘制(即覆盖 OnPaint 并绘制该位图)?一般来说,在设计器中渲染一个非常基本的控件应该可以工作。

如果设计器遇到了它无法处理的东西(例如 P/Invoke),您将获得带有控件名称的框,因此您通常必须“保护”设备特定代码不被设计师。

尝试退出功能,直到它开始正确呈现以找出失败的地方(因为您无法以任何其他方式真正调试这些东西)。

【讨论】:

  • 我正在重写 onpaint 并绘制位图 - 虽然这很“疯狂”,但没有 p/invokes 或任何不应该在控件中的东西
猜你喜欢
  • 2022-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多