Ho un suggerimento su un elemento che voglio rimanere aperto anche quando l'utente fa clic o tiene premuto il pulsante del mouse mentre si trova sul mio elemento.WPF ToolTip scompare con il mouse verso il basso
Esiste comunque?
Ho un suggerimento su un elemento che voglio rimanere aperto anche quando l'utente fa clic o tiene premuto il pulsante del mouse mentre si trova sul mio elemento.WPF ToolTip scompare con il mouse verso il basso
Esiste comunque?
C'è una proprietà di suggerimento StaysOpen, ma in base a this book è preferibile utilizzare un controllo Popup (è sufficiente farlo sembrare un suggerimento).
Ecco una citazione dal libro:
Non ha alcun effetto nella pratica. Lo scopo di questa proprietà è per consentire all'utente di creare un suggerimento che rimanga aperto fino a quando l'utente non fa clic su da qualche altra parte. Tuttavia, la proprietà ToolTipService.ShowDuration sovrascrive la proprietà StaysOpen. Come risultato , i suggerimenti scompaiono sempre dopo un tempo configurabile (in genere circa 5 secondi) o quando l'utente sposta il mouse. Se si desidera per creare una finestra simile a una descrizione che rimanga aperta indefinitamente, l'approccio più semplice consiste nell'utilizzare il controllo Popup.
Il modo più semplice è utilizzare Popup. Guarda il codice di esempio.
<!--Your ToolTip-->
<Popup x:Name="InfoPopup" PlacementTarget="{Binding ElementName=yourElement}" AllowsTransparency="True" StaysOpen="False" Placement="Mouse" PopupAnimation="Fade">
<Border BorderBrush="White" BorderThickness="1" Background="#FFFFFFFF" >
<Label Content="Your text here" />
</Border>
</Popup>
<!--Your element. Border, Button etc..-->
<Border x:Name="yourElement" Background="#FFFFFF" MinWidth="20" Height="20">
<Border.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseDown">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Duration="0:0:0:0" Storyboard.TargetProperty="IsOpen" Storyboard.TargetName="InfoPopup">
<DiscreteBooleanKeyFrame Value="True"></DiscreteBooleanKeyFrame>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseUp">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Duration="0:0:0:0" Storyboard.TargetProperty="IsOpen" Storyboard.TargetName="InfoPopup">
<DiscreteBooleanKeyFrame Value="False"></DiscreteBooleanKeyFrame>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
</Border>
Avevo paura di dover pasticciare con il controllo popup. Grazie per la risposta – viggity
Quindi la risposta è sì o no? Questo è un comportamento molto fastidioso del Tooltip. – xr280xr