2011-12-20 4 views
0

私は、ボタンのコントロールが見えないウィンドウ上で、ユーザがマウスをそのエリアに誤って乗せたときにボタンが見えるようにするという要件があります。イースターエッグのようなもの。以下はXAML用のコードですが、動作しないようです。WPFでマウスの上にボタンコントロールを表示するにはどうすればいいですか?

<Button Margin="0,0,20,0" Grid.Row="3" HorizontalAlignment="Right" 
     Name="CopyText" Width="75" Height="25"> 
    <Button.Style>   
     <Style TargetType="{x:Type Button}"> 
      <Setter Property="Visibility" Value="Hidden" /> 
      <Style.Triggers>     
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Visibility" Value="Visible" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style>  
    </Button.Style> 
</Button> 
+0

デフォルトの表示をtrueにすると、ボタンが表示されますか? – GameAlchemist

+0

はい、私はその場合のボタンが表示されます。 – developer

+0

プロパティウィンドウにMouseEnterプロパティが表示されますか?それは私がいつもしていることです。 – parion

答えて

1

内の透明な背景+目に見えないボタンを持つ境界線とControlTemplateを定義します。次に、境界線上にマウスを置くと、ボタンの表示をVisibleに設定できます。 可視性が表示されない要素入力イベント(またはコマンド)に参加しない、レイアウトの測定または配置パスに影響しない、タブシーケンスにない、およびヒットテストでは報告されません。

これは、あなたが気づいた動作を説明しています。それがフォーカスされた要素が が見えなく設定することができないといういくつかの意味になるだろう:それは集中しているため、

は、その後、あなたがクリック 後に再度、ボタンではないhiddingをControlTemplateを書く場合のかもしれません。私はそれをクリックハンドラー(スムース他に焦点を当てる)にゆるやかな焦点にしようとします。

+0

私はそれをやってみました。しかし、他の場所をクリックしない限り、ボタンは一度クリックすると透明になりません。 – developer

+0

IsMouseOverがfalseの別のトリガーを追加してみますか? IsMouseOverは通常のプロパティではなくイベントのように扱われると私は信じています。 – Amanduh

+0

同じ質問、実際は(:-)):IsMouseOverが真で、IsMouseOverがfalseのときにトリガーを設定しましたか? – GameAlchemist

関連する問題