0
嗨我有下面的代碼,過濾器回調被調用,但結果回調沒有,我一直在看這個一段時間,任何幫助,將不勝感激。HitTest結果回調不叫
public HitTestFilterBehavior MyHitTestFilter(DependencyObject o)
{
s += o.ToString() + " ";
//Test for the object value you want to filter.
if (o.GetType() != typeof(Node))
{
// Visual object and descendants are NOT part of hit test results enumeration.
return HitTestFilterBehavior.ContinueSkipSelf;
}
else
{
s+="node detected ";
// Visual object is part of hit test results enumeration.
return HitTestFilterBehavior.Continue;
}
}
下面是結果的回調代碼:
public HitTestResultBehavior MyHitTestResult(HitTestResult result)
{
s += "in result callback ";
if (result.VisualHit.GetType() == typeof(Node))
{
hitResultsList.Add(result.VisualHit as Node);
s+= "node detected in result callback "
return HitTestResultBehavior.Stop;
}
return HitTestResultBehavior.Continue;
}
這裏是我如何調用擊中測試:
hitResultsList.Clear();
VisualTreeHelper.HitTest(designerCanvas, new HitTestFilterCallback(MyHitTestFilter), new HitTestResultCallback(MyHitTestResult), new PointHitTestParameters(End));
現在,過濾器回調正在經歷所有元素並找到節點,但是結果回調函數根本不會被調用。
感謝您的答覆,我覺得你的解釋,使測試,而不是說得到了由試打的視覺效果,這是因爲過濾器經過整棵樹整個視覺樹的感覺,在這裏因爲沒有過濾器,結果回調僅返回返回兩個視覺效果。順便說一下,結果回調不捕捉節點,所以我用過濾器回調。 – mihajlv 2012-01-08 19:12:31