2013-07-11 35 views

回答

2

檢查this page了。它顯示如何確定您的元素是否在ScrollViewers視口中。

// position of your visual inside the scrollviewer  
GeneralTransform childTransform = ContainedObject.TransformToAncestor(ScrollViewerObj); 
Rect rectangle = childTransform.TransformBounds(new Rect(new Point(0,0),ContainedObject.RenderSize)); 

//Check if the elements Rect intersects with that of the scrollviewer's 
Rect result = Rect.Intersect(new Rect(new Point(0, 0), ScrollViewerObj.RenderSize),rectangle); 
//if result is Empty then the element is not in view 
if (result == Rect.Empty) 
{ 
//.... 
} 
else 
{ 
//obj is partially Or completely visible 
//skip or bring obj in view. 
} 
+1

謝謝。這是解決方案的缺失部分。儘管我必須更改鏈接中的代碼。沒有Rect.Intersect方法。有Intersect方法,但它不是靜態的。無論如何,再次感謝你。 – HaDenG