トランスペアレンシーをサポートするコンパクトフレームワークコントロールを設計していますが、この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を返したが、結果は全く何もありませんが、設計時のビューに描かれています。
どのような考えですか?
これは決してすべての答えではなく、さらには彼の質問に答える試みでもあります。彼は既にデバイスに取り組んでいます。同じようにデザイナーでレンダリングしたいだけです。 – ctacke
UI Frameworkは彼がやろうとしていることを行います(さらに多くのことを行います)、ソースコードとともに出荷されます。 ここでは役に立たないのは、あなたの回答です。 –
私はすでにUIフレームワークを見てきましたが、私が解決しようとしている問題は、言及されているようには役に立ちません。 UIフレームワークは、アルファブレンディングを使用するコンパクトなフレームワークコントロールのデザイナーサポートの問題に対処していません。おそらく私の質問はもっと明確になるだろうか? –