【发布时间】:2012-02-22 17:32:08
【问题描述】:
我正在尝试将 Winforms 与 SharpDX 项目集成,以便在我的 3D 应用程序中使用 Winforms(最终通过 HostElement 使用 WPF)。
我需要创建或配置一个控件或表单,以便我可以:
一个。将其渲染为纹理(我可以将其显示为精灵*)
湾。过滤其输入以在控件未激活时删除鼠标/键盘事件。
我已经尝试子类化 Control 和 Form,以覆盖 OnPaint 和 OnPaintBackground,但这些对子控件没有影响 - 或者就此而言,表单边框(即使他们这样做了,它们本身也不够我是仍然留下一个白色方块,我认为“父母”已被绘制)。
如何停止在屏幕上绘制控件或表单,而只绘制位图?(例如,有没有什么方法可以在绘制树之前覆盖图形?)
*需要这样做(而不是让控件呈现到屏幕上)因为 Winforms 不支持真正的透明度,所以我需要在我的像素着色器中剪辑颜色编码的像素。
(确认一下,我并不是专门指 DirectX 纹理 - 我对(实际上更喜欢)简单的 System.Drawing 位图感到满意)
【问题讨论】:
标签: c# windows winforms drawing sharpdx