我是silverlight的新手,并试图阅读Silverlight教程,该教程使用HitTest方法来了解鼠标何时位于控件上。 但不幸的是我不能看到这个名字的任何方法。HitTest财产
HitTest方法在哪里?那是因为我使用silverlight 4吗?有没有更换方法?
我是silverlight的新手,并试图阅读Silverlight教程,该教程使用HitTest方法来了解鼠标何时位于控件上。 但不幸的是我不能看到这个名字的任何方法。HitTest财产
HitTest方法在哪里?那是因为我使用silverlight 4吗?有没有更换方法?
旧版本(3.0之前)确实有HitTest方法。在Silverlight 3和4中,您可以使用 VisualTreeHelper.FindElementsInHostCoordinates
方法获得类似的目标。
例如,下面的代码可以用于您可能正在拖动项目的表面上的鼠标事件。它将确定拖动项目的任何部分是否与目标项目重叠。 警告空气代码
var container = (UIElement)sender;
var transform = draggedItem.TransformToVisual(container);
Rect rect = new Rect(transform.Transform(new Point(0, 0)),
new Size(draggedItem.ActualWidth, draggedItem.ActualHeight);
bool hit = VisualTreeHelper.FindElementsInHostCoordinates(rect, container)
.Any(elem => elem == targetItem);
我认为你正在寻找MouseEnter和MouseLeave事件。
http://msdn.microsoft.com/en-us/library/system.windows.uielement.mouseenter%28VS.95%29.aspx
您可以订阅这些事件,并设置表明该鼠标在你的单元的标志,或者其他任何应用程序的需要。
我正在构建一个演示应用程序,您可以在表单中除了circle控件(存在于表单中)之外的任何位置拖放控件。在教程中,他们使用circule.HitTest(e.GetPosition(null))其中e是“MouseEventArgs”。这个方法发生了什么(hitTest)为什么我不能使用它? – Gaby 2010-05-27 12:33:56
您试图遵循什么教程? – AnthonyWJones 2010-05-27 12:35:23