どういうわけか、WPFアプリケーションウィンドウのガラス/透明度を無効にできますか?
注:Aeroを無効にしたくはありません。ガラス/透明度だけを無効にし、システム全体ではなく、ウィンドウを無効にします。
このようなもの(Enable Transparency
チェックボックス)ですが、私のアプリケーション用です:
これは可能ですか?
これが遅れていることは知っていますが、他の人が探している場合は、次を使用できます。これは「Aero を無効にする」と見なされる可能性があるため、質問に厳密には答えないかもしれませんが、クライアント ウィンドウのみの透過性を無効にします。
[DllImport("DwmApi.dll")]
public static extern int DwmSetWindowAttribute(IntPtr hwnd, int dwAttribute, ref int pvAttribute, int cbAttribute);
private const int DWMWA_NCRENDERING_POLICY = 2;
private const int DWMNCRP_DISABLED = 1;
private void OnLoaded(object sender, RoutedEventArgs e)
{
var mainWindowHandle = new WindowInteropHelper(this).Handle;
var policyParameter = DWMNCRP_DISABLED;
DwmSetWindowAttribute(mainWindowHandle, DWMWA_NCRENDERING_POLICY, ref policyParameter, sizeof(int));
}
詳細については、DwmSetWindowAttribute 関数を参照してください。