2012-10-20 45 views
0

我有一個有很多形狀的畫布,我希望他們每個人都顯示一個字符串工具提示。爲了節省一些內存,我想在工具提示打開時設置工具提示值,所以我將工具提示設置爲最初每個形狀上的空字符串,然後在它變爲可見之前設置它的實際值(在工具提示開啓事件處理程序是)。但是,有時在ToolTipOpening事件處理程序中設置的ToolTip是一個空字符串,我不希望ToolTip在這些情況下顯示。我可以防止從ToolTipOpening事件處理程序中顯示WPF ToolTip嗎?

有什麼我可以從ToolTipOpening事件處理程序中做的事情來隱藏它嗎?或者,也許一個簡單的方法來知道什麼時候鼠標指針停留一段時間(爲了以編程方式顯示工具提示)?

回答

1

好的。我想我明白了。我已經使用的工具提示對象設置每個形狀的工具提示特性(而不是使用字符串),然後我可以這樣寫:

(shape.ToolTip as ToolTip).Visibility = Visibility.Hidden; 

似乎到目前爲止的工作...

1

我處理有同樣的問題。 最好的解決方案是將ToolTipEventArgs事件數據標記爲已處理。 這將防止工具提示出現。

來源:https://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.tooltipopening(v=vs.110).aspx

public void CellToolTipOpening(object sender, ToolTipEventArgs args) 
{ 
    var cell = args.Source as CellValuePresenter; 
    if (cell == null) 
     return; 

    ... 

    if (!string.IsNullOrWhiteSpace(ViewModel.Tooltip)) 
    { 
     ToolTipService.SetToolTip(cell, ViewModel.Tooltip); 
    } 
    else 
    { 
     args.Handled = true; 
    } 
} 
相關問題