2016-09-26 3 views
0

Wenn ich nur einen Tooltip erstellen und legen Sie es die Eigenschaft "staysopen" zu false seine Arbeit. Aber wenn ich mehrere Tooltips erstelle und ihre staysopen-Eigenschaft auf false setze, wird nur der erste Tooltip, den ich erstelle, nach einem Mausklick geschlossen. Andere bleiben offen.Wpf mehrere Tooltip bleibtopenopen Eigenschaft funktioniert nicht

Warum?

Beispielcode:

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; 

Antwort

0

Sie zwingen die beiden Tooltips zu öffnen, und dann nicht so dass sie offen bleiben, die eine Ausnahme verursacht.

System.NotSupportedException wurde nicht behandelt Nachricht: Eine nicht behandelte Ausnahme des Typs ‚System.NotSupportedException‘ aufgetreten in PresentationFramework.dll Zusätzliche Informationen: Standardmäßig wird ToolTip-Eigenschaft nicht ToolTip Element unterstützt mit Staysopen auf false gesetzt.

Wenn Sie wollen, dass sie das offene Update bleiben 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; 
     }