8

ガラス効果を得るために、WPFアプリケーションでDwmExtendFrameIntoClientAreaを使用しています。これは正常に機能しています。私がやりたいのは、ガラスに使用する色を変更することです。カウントダウンタイマーを作成しています。ほとんどの場合、ウィンドウを通常のガラスの色にしてから、赤にします(ただし、まだガラス付き)時間がなくなると。

グラデーションガラスを適用する方法について説明しているこの質問を見つけました。これは、別の色を選択するときにうまく機能します。残念ながら、境界線は適切に色付けされていません。

を使用して境界線をオフにすると、ResizeMode="NoResize"角が四角になります。角を丸くしたいのですが。

を使って不規則な形の窓を作成することを検討しましたAllowTransparency="True"が、それはうまく機能しますが、Aeroガラス窓のようには見えません。少しフラットに見えます。

だから:私の質問:Aeroガラスの透明度のように見えるが異なる色を使用するウィンドウをWPFで作成するにはどうすればよいですか?

4

2 に答える 2

2

これを達成する唯一の方法は、半透明の塗りつぶされた境界線を使用して、ウィンドウ全体またはガラスを取得した部分に描画することだと思います. 回避策ですが、ガラスの色がシステムユーザーによって定義され、この設定があなたの設定を上書きするため、可能な解決策だと思います。

于 2010-05-09T21:13:38.157 に答える
1

私自身も同じ質問をしています。

良い解決策は見つかりませんでしたが、これまでに見つけた最善の方法は次のことです。

HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = Colors.FromArgb(100,255,0,0);

残念ながら、これは最小化、サイズ変更、閉じるボタンに色を付けますが、これは避けたいと思います。

于 2011-05-11T09:57:45.613 に答える