0

WPFの「ボタン」コントロールを作成し、それをElementHostコントロールの子にします。

ボタンの背景は赤に設定されています。

プロジェクトを実行すると、ボタンの色が変わり、フォームがフォーカスを失うまで、数秒ごとに赤から水色にループして戻ってくるように見えます。

ボタンにカーソルを合わせると青色に変わり、ボタンを離すとこの色のループが再開されます。コードは単純です。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        System.Windows.Controls.Button but = new System.Windows.Controls.Button();
        but.Background = System.Windows.Media.Brushes.Red;
        elementHost1.Child = but;
    }
}

これは正常ですか?オフにできますか?

4

1 に答える 1

0

はい、それは正常です。WPFボタンは、入力フォーカスがある場合、常に微妙なカラーサイクリング効果を発揮します。これは、フォーム上の唯一のコントロールであるため、ボタンの場合に当てはまります。あなたの例では、赤はボタンが循環する他の青みがかった色から遠く離れているため、それほど微妙ではありません。その背景の割り当てを削除して、意図したとおりの効果を確認してください。同じフォームに別のWPFボタンを使用して別のElementHostを追加してみると、フォーカスされたボタンのみがカラーサイクリングを実行していることがわかります。

消す方法は…わかりませんが、簡単ではないのではないかと思います。この効果を変更するボタンの単純なプロパティは表示されません。このような効果は、一般的に、成長した男性を泣かせる主題であるWPFスタイルのテンプレートによって実現されます。以下にMSDNの概要を示しますが、これは、Windowsフォーム内ではなく、WPFおよびXAML内で作業していることを前提としていることに注意してください。

http://msdn.microsoft.com/en-us/library/bb613570.aspx

私の推測では、変更されたフォーカススタイルを、カラーサイクリングを行わないボタンに関連付けるか、フォーカススタイルが循環する2番目のブラシ(背景以外)のリソース名を見つけて、それを設定する必要があります。背景と同じ色のリソース。

于 2011-12-11T14:31:01.270 に答える