2017-11-05 16 views
0

ボタンコントロールに問題があります。その上にマウスを置くと、ボタンの画像が表示されません。しかし、マウスを離すと、画像が戻ってきます。マウスオーバーが真のときに画像を保存したい。マウスが、これは正常な状態ボタンの背景画像を変更できません

enter image description here

がある

enter image description here

の上にあるときに

はこれがあると、これは私のコード

<Button Name="miliage_btn" Canvas.Left="775" Canvas.Top="57" Width="239" Height="80" Click="Button_Click" > 
        <Button.Background> 
         <ImageBrush ImageSource="D:\남경현\로드오브다이스 시뮬/pack0.jpg"> 
         </ImageBrush> 
        </Button.Background> 
       </Button> 

であり、私はこのコードを試してみてください

<Button.Style> 
         <Style TargetType="Button"> 
          <Style.Triggers> 
           <Trigger Property="IsMouseOver" Value="true"> 
            <Setter Property="Background"> 
             <Setter.Value> 
              <ImageBrush ImageSource="D:\남경현\로드오브다이스 시뮬/1회뽑기.png"/> 
             </Setter.Value> 
            </Setter> 
           </Trigger> 
          </Style.Triggers> 
         </Style> 
        </Button.Style> 

xamlまたはc#で修正できますか?

+0

ここまでお試しください。 –

+0

この質問を編集してコードを投稿できますか?あなたがしようとしたことを私たちに教えてください。 –

+0

私は画像とソースを追加します – cakejoker

答えて

0

コントロールスタイルを作成する際には、いくつか考慮すべき点があります。

最初に、トリガーを宣言すると、そのトリガー内の任意のセッターのターゲットプロパティを直接(Button.Backgroundを直接割り当てるように)コントロールに設定してはいけません。代わりにスタイルのセッターで設定する必要があります。理由はDependency Property Value Precedenceで説明されています。

第二に、ボタンのデフォルトのControlTemplateを背景にオーバーレイの上にマウスのビジュアルオーバーレイを示しています。独自のControlTemplateを宣言することでそれを置き換える必要があります。

絶対ファイルパスからイメージを読み込む代わりに、イメージファイルをVisual Studioプロジェクト(Imageというフォルダなど)に追加し、ビルドアクションをResourceに設定することを検討する必要があります。

<Button Content="Hello"> 
    <Button.Style> 
     <Style TargetType="Button"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <Border Background="{TemplateBinding Background}" 
           BorderBrush="{TemplateBinding BorderBrush}" 
           BorderThickness="{TemplateBinding BorderThickness}"> 
          <ContentPresenter 
           HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
           VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="Background"> 
       <Setter.Value> 
        <ImageBrush ImageSource="Images/StandardBackground.png"/> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background"> 
         <Setter.Value> 
          <ImageBrush ImageSource="Images/MouseOverBackground.png"/> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 
</Button> 
+0

ありがとう!私はそれをtommorowしよう! – cakejoker

関連する問題