Я разрабатываю элемент управления Compact Framework, который поддерживает прозрачность, и для рабочей версии элемента управления все работает, просто находите вызов платформы на этом 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 Designer.
Я пытался сделать этот вызов платформы:
[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, результат вообще ничего не отображается в представлении времени проектирования.
Есть мысли?