ユーザーがマウスをその位置に置いたときにのみボタンを表示します。マウスがその領域を離れると、ボタンは元に戻ります。ここにボタンのための私のコードです。MouseOverでボタンの視認性を調整する
<StackPanel Name="ButtonOptions" Orientation="Horizontal" DockPanel.Dock="Bottom" Background="DarkBlue" Height="50" Width="auto">
<!--<StackPanel.Resources>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</Trigger>
</Style.Triggers>
</Style>
</StackPanel.Resources>-->
<Button Name="LoginButton" FontSize="12" Click="LoginButton_Click" Content="Log In" Width="100" Height="31" Margin="50,0,0,0"
FontFamily="Arial" Visibility="Visible" IsEnabled="True" MouseEnter="LoginButton_MouseEnter" />
<Button Name="OptionsButton" Content="Options" Width="100" Height="31" Margin="20,0,0,0" FontFamily="Arial"
FontSize="12" Click="OptionsButton_Click" Visibility="Hidden" IsEnabled="False"/>
</StackPanel>
私はそれを試して、動作していなかったので、resoucesセクションはコメントアウトされています。ボタンでの私のログには、付属の以下のEventHandlerを持っている...
LoginButton.MouseEnter += new MouseEventHandler(LoginButton_MouseEnter);
これは処理するメソッド..
private void LoginButton_MouseEnter(object sender, MouseEventArgs e)
{
MessageBox.Show("Made in the login button listener for mouseOver");
LoginButton.Visibility = Visibility.Visible;
}
私は私のアプリを実行すると、私は場所の上に置いたとき、何も起こりませんボタンがあるはずです。しかし、最初にログインボタンの表示をVisibleに設定すると、そのボタンが表示されます。クリックすると、ログインしたユーザーのログイン方法が無効になり、メッセージボックスが表示されます。 「mouseOverのログインボタンリスナーを作成する」のMouseEventListenerメソッドそれだけでなく、私はこれらのメッセージの2つを受け取ります(最初に「OK」をクリックすると直ちにそれが再びポップアップします)。なぜ動作しないのか、なぜ私のclickイベントメソッドが無視されるのかわかりません。今すぐmouseEventメソッドが発生します。
ご意見やご協力をいただければ幸いです。
イベントは発生しません。 – 0x4f3759df
マウスオーバーの診断にポップアップを使用しないでください。あなたはそれを閉じるためにダイアログの上にマウスを置くと、それを引き起こした要素の上にもはやマウスが置かれないので、あなたは2つのポップアップを得ています!ダイアログが閉じると、イベントの上にマウスが再び発射されます。 –
@iterationx:それは本当だと思いますが、あなたがIsHitTestVisibleを取得した場合、それを上書きできるかもしれません。 –