0

こんにちは、みんな、

WPF アプリケーションで使用するボタン テンプレートの作成に取り組んでいます。形式は基本的にカラー タイルです (大部分は Windows Phone スタイルを考えてください)。

MouseOver が発生したときにボタンの色を変更したい場合は、次のようなコードを作成します (元のボタンの色が灰色だとしましょう)。

<Window.Resources>
    <Style x:Key="ColorTileButton" TargetType="Button>

<!-- Insert various property editing here. -->

        <ControlTemplate.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="LightGray" />
            </Trigger>
            <Trigger Property="IsMouseOver" Value="False>
                <Setter Property="Background" Value="Gray" />
            </Trigger>
        </ControlTemplate.Triggers>
    </Style>
</Window.Resources>

しかし、元のボタンの色がたとえば Firebrick の場合、これは明らかに機能しません。そこで、このボタン テンプレートを書き直して、R、G、B の値を約 10 だけインクリメントしてボタンの色を明るくし、マウスを離したときにデクリメントする方法があるかどうか疑問に思っていました。手伝ってください?

みんなありがとう。

4

1 に答える 1

1

あなたが説明しているのはColorAnimationだと思います。または、このForum Postを参照してください。フォーラムの投稿からの興味深いメモ。

トリガーは、条件が満たされたときに 1 つ以上のプロパティを変更し、条件が満たされないときにプロパティ値をリセットします。

したがって、彼が提案しているのは次のとおりです。

<ControlTemplate.Triggers> 
    <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="LightGray" /> 
    </Trigger> 
</ControlTemplate.Triggers> 

例で示したように、FireBrickにリセットされます

于 2012-05-10T01:03:44.247 に答える