.Netフォームをグラスでサポートするためのいくつかのテクニックがあります。ヘルプ.Netを入手するWinFormsのアプリケーションでVistaエアログラスをサポートする
私はこの方法のためにオリジナルのソースはここにあると思う:基本的にhttp://blogs.msdn.com/tims/archive/2006/04/18/578637.aspx
:
//reference Desktop Windows Manager (DWM API)
[DllImport("dwmapi.dll")]
static extern void DwmIsCompositionEnabled(ref bool pfEnabled);
[DllImport("dwmapi.dll")]
static extern int DwmExtendFrameIntoClientArea(IntPtr hWnd, ref MARGINS pMarInset);
//then on form load
//check for Vista
if (Environment.OSVersion.Version.Major >= 6)
{
//check for support
bool isGlassSupported = false;
DwmIsCompositionEnabled(ref isGlassSupported);
if (isGlassSupported)
DwmExtendFrameIntoClientArea(this.Handle, ref margins);
...
//finally on print draw a black box over the alpha-ed area
//Before SP1 you could also use a black form background
最後のステップは問題であること - その領域の上に描かれた任意のサブコントロールはまた、黒扱うように見えますアルファ透明マスク。
たとえば、クラス領域のタブストリップには透明なテキストが表示されます。
方法はありますか?
これを行う簡単な方法はありますか?
私が取り組んでいるアプリケーションは、XPとVistaの両方で動作する必要があります。私はそれらを正常に機能させる必要があります。ここにベストプラクティスはありますか?
ありがとうございますが、SP1の後では動作しません。ボックスが黒くなっているようです。 – Keith