需求
自己绘制的UI,检测鼠标位置,适时显示出 ToolTip
一个ShowAlways属性就可以了。
逻辑就放在MouseMove中实时判断,
符合条件就调用最后那两句。
(当然,按需改成动态数据)
检索了一圈没有特别好的解决办法,总是出现问题
那样的话需要单独设一些样式。
还是用回ToolTip再尝试解决一下。相信多试试办法总会有的。
XAML文件:
<Canvas ToolTipService.ShowDuration="0" ToolTipService.InitialShowDelay="0" ToolTipService.BetweenShowDelay="0" MouseMove="MainCanvas_MouseMove"> <Canvas.ToolTip> <ToolTip x:Name="tip" PlacementTarget="{Binding ElementName=MainCanvas}" Content="A tooltip!" Visibility="Collapsed"></ToolTip> </Canvas.ToolTip> </Canvas>ToolTipService.ShowDuration="0"
让首次显示时长为0,就解决了这个问题。
配合手动控制ToolTip的Visibility属性。
后台代码:
// Position: tip.Placement = System.Windows.Controls.Primitives.PlacementMode.Relative; tip.HorizontalOffset = e.GetPosition((IInputElement)sender).X + 10; tip.VerticalOffset = e.GetPosition((IInputElement)sender).Y + 10; // logic for Show/Hide: tip.Visibility = showTip ? Visibility.Visible : Visibility.Collapsed; // Be open constantly while mouse-moving: tip.IsOpen = true;标签:
原文地址:https://www.cnblogs.com/CoderMonkie/p/tooltip-in-wpf.html