2016-09-26 11 views
0

ツールチップを1つ作成して、staysopenプロパティをfalseに設定すると、そのツールチップが機能します。しかし、複数のツールチップを作成し、それらのstaysopenプロパティをfalseに設定した場合、作成した最初のツールチップだけがマウスクリック後に閉じます。他のものは開いたままです。Wpf複数のツールチップのstaysopenプロパティが機能しない

なぜですか?

サンプルコード:

ToolTip tooltip = new ToolTip { Content = "Password cannot be empty." }; 

Password_PasswordBox.ToolTip = tooltip; 
tooltip.PlacementTarget = Password_PasswordBox; 
tooltip.Placement = System.Windows.Controls.Primitives.PlacementMode.Top; 
tooltip.IsOpen = true; 
tooltip.StaysOpen = false; 

ToolTip tooltip2 = new ToolTip { Content = "Username cannot be empty." }; 

Username_TextBox.ToolTip = tooltip2;    
tooltip2.PlacementTarget = Username_TextBox; 
tooltip2.Placement = System.Windows.Controls.Primitives.PlacementMode.Top; 
tooltip2.IsOpen = true; 
tooltip2.StaysOpen = false; 

答えて

0

あなたが開くように、両方のツールチップを強制し、それらは例外の原因となっている開いたままにできるようにされていません。

System.NotSupportedExceptionが未処理 メッセージだった:型「System.NotSupportedException」の未処理の例外がPresentationFramework.dll で発生しました追加情報:StaysOpenをfalseに設定してデフォルトでは、ToolTipプロパティは、ツールヒント要素をサポートしていません。

あなたは彼らがToolTipService.ShowDurationProperty

 ToolTipService.ShowDurationProperty.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(Int32.MaxValue)); 

     { 
      ToolTip tooltip = new ToolTip {Content = "Password cannot be empty."}; 

      Password_PasswordBox.ToolTip = tooltip; 
      tooltip.PlacementTarget = Password_PasswordBox; 
      tooltip.Placement = System.Windows.Controls.Primitives.PlacementMode.Top; 
      tooltip.IsOpen = true; 
      //tooltip.StaysOpen = false; 
     } 
     { 
      ToolTip tooltip2 = new ToolTip { Content = "Username cannot be empty." }; 

      Username_TextBox.ToolTip = tooltip2; 
      tooltip2.PlacementTarget = Username_TextBox; 
      tooltip2.Placement = System.Windows.Controls.Primitives.PlacementMode.Top; 
      tooltip2.IsOpen = true; 
      //tooltip2.StaysOpen = false; 
     } 
開い更新滞在したい場合
関連する問題