3

WPF の色とフォームの背景色をいじろうとしています。他に何もせずに (コード ビハインド、別のクラスからの派生など)、まったく新しい既定の Windows フォームを作成します。背景を明るい青色に変更します。フォームを保存します。プログラムを実行し、そのフォームを開きます。フォームは、XAML を尊重していないように、他のはるかに暗い色で表示されます。

<Window x:Class="MyProjectNamespace.AnotherWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="AnotherWindow" Height="300" Width="300" Background="#4800A8A6">
    <Grid>

    </Grid>
</Window>

さらに、この同じ背景値 #4800A8A6 を取得してブラシを作成し、BrushConverter.ConvertFrom( "#4800A8A6" ); を実行しようとすると、フォームを実行すると、デザイナーを介して表示される色が正しくありません...何が得られますか...

4

3 に答える 3

5

カラーコードの最初のバイトである「48」はアルファ値であるため、ウィンドウでアルファブレンディングを許可しています(「Windowsフォーム」ではなく、別のテクノロジーです;))、これはあなたの色を意味しますウィンドウは、その背後にあるものの色とブレンドされます。

に変更してみてください:#FF00A8A6より良い結果が得られるかどうかを確認してください。

于 2011-09-22T18:25:34.583 に答える
3

あなたの問題は、背景色にアルファチャンネルを含めることです(つまり#AARRGGBB)。デザイナーでは、VS の背景色 (私の場合は白) に対して背景が合成されていることがわかります。これにより、スタンドアロンとして実行した場合と比較して背景が「明るく」なります。

これを自分で確認するには、 を試すBackground="#00A8A6"か、追加してみてくださいAllowsTransparency="True"(ただし、これには の面倒な要件がありますWindowStyle.None)。

于 2011-09-22T18:26:00.310 に答える
2

これはおそらく、色のアルファ成分が原因です。ウィンドウを透明にしようとしている場合は、を使用する必要がありますAllowsTransparency="True"。そうしないと、WPFはデフォルトのWindowsの背景色をWindowsの背景とマージします。

于 2011-09-22T18:28:12.093 に答える