我正在使用yFiles.Net組件來處理某些SQL數據庫(圖形表示)中對象之間的依賴關係。顯示和處理工具提示.NET
我需要創建工具提示,當我將光標指向某個對象時,它將出現。該工具提示不僅包含文本,還包含圖像。我知道如何製作擴展默認Tooltip類的自定義類,然後覆蓋繪製自定義工具提示的方法。
我不知道的是當我在圖上指向某個對象時如何顯示工具提示,以及當我從圖上的對象移動光標時如何處理它?有人可以幫我解決這個問題嗎?
我正在使用yFiles.Net組件來處理某些SQL數據庫(圖形表示)中對象之間的依賴關係。顯示和處理工具提示.NET
我需要創建工具提示,當我將光標指向某個對象時,它將出現。該工具提示不僅包含文本,還包含圖像。我知道如何製作擴展默認Tooltip類的自定義類,然後覆蓋繪製自定義工具提示的方法。
我不知道的是當我在圖上指向某個對象時如何顯示工具提示,以及當我從圖上的對象移動光標時如何處理它?有人可以幫我解決這個問題嗎?
private CustomTooltip m_tooltip;
private MouseHoverInputMode m_mouseHoverMode;
private void SetupToolTips(GraphEditorInputMode mode)
{
m_tooltip = new CustomTooltip(m_model.TooltipImages);
ItemHoverInputMode itemHoverMode = new ItemHoverInputMode();
itemHoverMode.HoverItems = GraphItemTypes.Node | GraphItemTypes.Edge;
mode.ItemHoverInputMode = itemHoverMode;
m_mouseHoverMode = new MouseHoverInputMode(m_tooltip, textProvider);
mode.MouseHoverInputMode = m_mouseHoverMode;
mode.ItemHoverInputMode.HoveredItemChanged += new EventHandler<HoveredItemChangedEventArgs>(ToolTipEvent);
}
private void ToolTipEvent(object sender, HoveredItemChangedEventArgs e)
{
m_tooltip.Item = e.Item;
}
private void textProvider(object sender, ToolTipQueryEventArgs e)
{
if (m_tooltip.Item is INode || m_tooltip.Item is IEdge)
{
e.ToolTip = " ";
}
}
public class CustomTooltip : ToolTip
{
private void OnPopup(object sender, PopupEventArgs e)
{
}
private void OnDraw(object sender, DrawToolTipEventArgs e)
{
}
}
如果我理解正確,您想攔截 ItemHoverInputMode.HoveredItemChanged Event
。
我沒有測試過這也不符合yFiles工作過,但根據documentation這應該工作:
// 'gc' is of type yWorks.yFiles.UI.GraphControl.
var ihim = new ItemHoverInputMode();
ihim.HoveredItemChanged += YourEvenHandler;
gc.InputModes.Add(ihim);
然後檢查元素在事件處理程序和顯示或隱藏工具提示。
只需要注意,只要您評估yFiles,您就有權獲得yWorks的免費支持。儘管我們中的一些人也習慣性地使用堆棧溢出,但它仍然不是支持的首選方式(主要是因爲yFiles遠小於人們詢問的其他庫,所以yFiles的問題往往在這裏一直沒有答案)。在這裏詢問沒什麼不妥,但要知道它可能不如問我們的支持那麼有幫助。 – Joey