2012-03-12 10 views
0

これは同じコードを扱っているので、previous questionと接続されています。ボタンのバックグラウンドの変更を完了したので、問題は、ButtonPressedではなく、クリックされたボタンで同じコードを実装する必要があることです。コードでクリックハンドラを追加しましたが、うまくいきません。背景は変わりません。私はビットマップと画像ソースを使用していても、さまざまなアプローチを試みましたが、機能していません。変更は単に起こりません。今私は、背景画像の変更を実装したいですが、XAMLファイルではなく、.csファイルで行う必要があります。再びコード:私はすでにクリックするためのいくつかのボタンのプロパティのために見てきたが、どれがなかった、と私はインターネット上で見つけたすべての実装は.csファイルにButton_Clickメソッドを追加することを扱っているWPF内のWPFコントロールでClickイベントを実装する

<Button x:Class="proba4.UserControl1" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="120" d:DesignWidth="300" IsEnabled="True"> 
    <Button.Template> 
     <ControlTemplate TargetType="{x:Type Button}"> 
      <Grid> 
       <Image Name="Normal" Source="C:\stuff\off_button.gif"/> 
       <Image Name="Pressed" Source="C:\stuff\on_button.gif" Visibility="Hidden"/> 

      </Grid> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsPressed" Value="True"> 
        <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/> 
        <Setter TargetName="Pressed" Property="Visibility" Value="Visible"/> 
       </Trigger> 

      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 

注意私のために働いていないので、私は別の方法を見つける必要があります - うまくいけば、WPFを使用して完全に実装されたクリックコントロールのようなものです。 これは繊細だと思いますが、私はこれに感謝します。

答えて

1

Buttonではなく、ToggleButtonの動作が必要なように聞こえます。 Buttonでクリックすると、プロパティが表すことができるコントロールに入る状態ではなく、離散イベントです。 ToggleButtonは、クリックしたときに2つ(または3つ)の状態間を行き来し、IsCheckedプロパティは状態を表し、例ではIsPressedのようにトリガーでバインドできます。

関連する問題