【发布时间】:2009-08-26 18:25:51
【问题描述】:
我正在设计一个支持透明度的紧凑型框架控件,对于控件的运行时版本,一切正常,只需找到在此 API 上执行平台调用即可:
[DllImport("coredll.dll")]
extern public static Int32 AlphaBlend(IntPtr hdcDest, Int32 xDest, Int32 yDest, Int32 cxDest, Int32 cyDest, IntPtr hdcSrc, Int32 xSrc, Int32 ySrc, Int32 cxSrc, Int32 cySrc, BlendFunction blendFunction);
显然,对“coredll.dll”的调用在桌面设计时体验中不起作用,现在,当绘制发生时,我只是检测到正在设计控件并在没有任何透明度的情况下绘制它.我希望能够提供更好的设计时体验并在 Visual Studio 设计器中显示相同的透明度。
我已经尝试过这个平台调用:
[DllImport("gdi32.dll", EntryPoint = "GdiAlphaBlend")]
public static extern bool AlphaBlendDesktop(IntPtr hdcDest, int nXOriginDest, int nYOriginDest,
int nWidthDest, int nHeightDest,
IntPtr hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc,
BlendFunction blendFunction);
但是当它返回 true 时,结果是什么都没有被绘制到设计时视图。
有什么想法吗?
【问题讨论】:
标签: c# visual-studio-2008 compact-framework