どのように私は、スタックパネル用のSilverlight上でマウスホバー状態を作成することができますか?
-
12-09-2019 - |
質問
私はマウスがスタックパネル上にあるとき、それはその不透明度を変更し、マウスのホバー状態を作成しようとしています。
私は状態を作成し、スタックパネル用MOUSE_ENTERイベントを作成し、CSファイルの背後にあるコードで、私はMOUSE_ENTERイベントに次のコードを持っています。
MouseOver.Begin();
私のマウスは、何も起こらなかった、スタックパネルの上にマウスを移動、あるいはスタックパネルをクリックされたときにマウスオーバーは、ストーリーボードの名前ですが、どこで何をしないのですか?
おかげ
PlayKid
解決
私は自分自身を考え出します。
このコードを使用してます:
VisualStateManager.GoToState
みんなありがとうます。
他のヒント
あなたは、イベントが(あなたが適切にイベントを配線している)解雇されていることを確認していますか?メッセージボックスか何かを使ってチェックしてみてください。 (System.Windows.MessageBox.Show()
)
あなたはストーリーボードは、他の状況(ページのロードか何かでそれを試してみました?)
でうまく動作してもよろしいですこれらの作業の両方の場合は、イベントハンドラを追加する方法についていった方法を説明してくださいます。
私の経験では、パネルにMOUSE_ENTERイベントをフックすることはできません。私のいつもの解決策は、私はとのためのマウスイベントは、ビジュアルツリーの最上部に、そのアイテムを維持したいエリアを覆う透明な目標を設定することです。だから、XAMLのようになります:
<StackPanel x:Name="ContentPanel" SizeChanged="ContentPanelSizeChanged" >
< /*Some content here */ >
</StackPanel>
<Canvas x:Name="HitTarget" Mouse_Enter="HitTargetMouseEnter" />
そしてContentPanelSizeChangedハンドラはHitTargetキャンバスのサイズは実際のStackPanelの(レンダリング)サイズに設定します。同じことがMouseButtonDownイベントのために働くと私はそれが同様にマウスホイールイベントのために働くと推測でしょう。私はSenthilさんのトラブルシューティングの提案をしようとしていますが、すべての(私は推測と思われるが問題である)で発射するイベントを得ることができない場合、この試みを与えるお勧めします。