我想动态生成工具提示,因为工具提示必须包含具有动态列数的网格。
我该怎么做?
答案 0 :(得分:1)
您可以创建一个新的Popup并将该工具提示模拟为Popup。
你只需要处理这两个事件:MouseEnter,MouseLeave。
在鼠标输入时,您可以使用计时器在x秒后打开弹出窗口:
private void Canvas_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e) {
timer = new Timer(500);
timer.Elapsed += timer_Elapsed;
timer.Enabled = true;
}
并在鼠标离开时取消计时器:
private void Canvas_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e) {
timer.Elapsed -= timer_Elapsed;
timer = null;
}
当计时器结束时,您将使用调度程序打开弹出窗口:
void timer_Elapsed(object sender, ElapsedEventArgs e) {
Dispatcher.BeginInvoke(DispatcherPriority.Normal, new oolDelegate(OpenTooltip), true);
}
Open工具提示方法将打开弹出窗口:
public void OpenTooltip(bool isOpen) {
popup.IsOpen = isOpen;
popup.LostFocus += popup_LostFocus;
}
当弹出窗口失去焦点时你也可以关闭它
希望这可以提供帮助