2017-09-28 6 views
1

私はWPF C#アプリケーションで作業しています。ポップアップを作成する必要があります。このポップアップにはボタンが含まれており、そのボタンにはツールチップを定義する必要があります。WPFポップアップとボタンのツールチップに関する問題

問題は、ボタンの上にカーソルを置くとツールチップが表示されますが、マウスを離すとすぐにツールチップが消えず、消えるまでに約5秒かかります。私は手掛かりを持っている

 <ToggleButton Name="PART_Button" 
         DockPanel.Dock="Right" 
         Width="20" 
         Height="20" 
         HorizontalAlignment="Center" 
         VerticalAlignment="Center" 
         Margin="0,0,0,0" 
         IsChecked="{Binding ElementName=PART_Popup, 
         Path=IsOpen, Mode=OneWay}"> 
     </ToggleButton> 

     <Popup IsOpen="{Binding ElementName=PART_Button, Path=IsChecked}" 
       PlacementTarget="{Binding ElementName=PART_Button}" 
       StaysOpen="False"> 

      <Button x:Name="PART_MinButton" 
        Content="BOT"> 

       <Button.ToolTip> 
        <ToolTip Placement="Bottom" 
          Content="Hello !!" />      
       </Button.ToolTip> 

      </Button> 

     </Popup> 

、私はStaysOpen =「偽」を削除やるときに、ツールチップは、内部のボタンに適していますし、私はマウスを動かすと、それはすぐに消える:コードスニペットの下

離れているが、StaysOpen = "False"に設定すると問題が始まります。

どうすればこの問題を解決できますか?私は固まってアイデアが不足しています。

ありがとうございました。

+0

あなたはShowDuration添付プロパティを確認しましたか? https://msdn.microsoft.com/en-us/library/system.windows.controls.tooltipservice.showduration(v=vs.110).aspx – Lennart

+0

はい、ただし、ツールチップが表示されている時間を定義しています私はボタンからマウスを離したときに、すぐに消えることはありません。その前にしばらく時間がかかります。 – mmahfoudh

答えて

0

どうすればこの問題を解決できますか?

Buttonの場合はMouseLeaveイベントを処理できます。

<Popup IsOpen="{Binding ElementName=PART_Button, Path=IsChecked}" 
       PlacementTarget="{Binding ElementName=PART_Button}" 
       StaysOpen="False"> 
    <Button x:Name="PART_MinButton" 
        Content="BOT" MouseLeave="PART_MinButton_MouseLeave"> 
     <Button.ToolTip> 
      <ToolTip Placement="Bottom" IsOpen="False" 
        Content="Hello !!" /> 
     </Button.ToolTip> 
    </Button> 
</Popup> 

private void PART_MinButton_MouseLeave(object sender, MouseEventArgs e) 
{ 
    Button btn = sender as Button; 
    (btn.ToolTip as ToolTip).IsOpen = false; 
} 
関連する問題