对于我们的silverlight项目中的一个要求,我的一个队友已经编写了一个自定义ToolTipManager。我们希望工具提示即使在鼠标失控/工具提示后仍然可见。并且仅在用户点击其他位置时将其删除。因此这个自定义ToolTipManager类。
在这个类中,有一个附加属性ToolTipProperty,其中有OnToolTipPropertyChanged。在这种情况下,handeler将附加属性的控件引用添加到ToolTipManager中的私有列表中。
private static void OnToolTipPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var owner = (UIElement)d;
var newValue = e.NewValue;
if (newValue != null)
// ElementsAndToolTips is dictionary.
ElementsAndToolTips.Add(new WeakReference(owner), newValue);
}
我希望在处理此控件时从列表中删除控件的引用。我在哪里可以做到是否有任何事件或方法如附加属性卸载/分离或类似的东西?
P.S。属性用于许多不同的控件,最好在ToolTipManager类中进行更改,而不是在许多不同的位置进行更改。