1

次のような 5 つのボタンがあります。

            <Button Name="btnAssets" Grid.Row="1" Margin="7,1,7,1" Click="btnDrawer_Click" >
                <StackPanel >
                    <StackPanel.Background>
                        <ImageBrush ImageSource="/Test;component/Images/DrawerSlid.png" />
                    </StackPanel.Background>
                    <Image Margin="0,0,0,0" Source="/Test;component/Images/DrawerUpper2.png" />
                    <TextBlock Margin="0,10,0,10" TextWrapping="WrapWithOverflow" TextAlignment="Center">Assets</TextBlock>
                    <Image Margin="0,0,0,0" Source="/Test;component/Images/DrawerSlid2.png" />
                </StackPanel>                    
            </Button>

これらのボタンのスタイル トリガーは次のようになります。

    <Style TargetType="StackPanel">
        <Setter Property= "TextBlock.Foreground" Value="White"/>
        <Setter Property= "TextBlock.FontSize" Value="12"/>
        <Style.Triggers>
           <Trigger Property ="IsMouseOver" Value="True">
               <Setter Property= "TextBlock.Foreground" Value="Yellow"/>
               <Setter Property= "TextBlock.FontSize" Value="13"/>
            </Trigger>
        </Style.Triggers>                       
    </Style>

これらのコードは正常に動作します。ユーザーがいずれかのボタンをクリックすると、前景色とフォントサイズが変更されるようになりました。しかし、私は簡単な解決策を見つけることができません。xaml または c# 経由でこれを行うにはどうすればよいですか?

4

2 に答える 2

1

ボタン スタイル テンプレートでトリガー「IsPressed」を使用できます。これを参照してください http://geekswithblogs.net/cskardon/archive/2008/06/20/roundedbutton-button-style-wpf.aspx

于 2012-06-14T08:11:01.243 に答える
0

ボタンは WPF で作成する方法が異なるため、ボタンのトリガーを希望どおりに動作させるには、もう少し作業が必要です。通常、手順は次のとおりです。

  1. Decorator 基本クラスから派生して、独自のボタンのテンプレートを作成する
  2. XAML でボタン用の独自のコントロール テンプレートを作成する
  3. ボタンをカスタム テンプレートに接続します。

うまく機能する記事と例がここにあります: http://www.wiredprarie.us/journal/2006/09/wpf_decorators_build_your_own.html

于 2012-06-14T06:23:33.390 に答える