Obwohl andere die Notwendigkeit erfüllt haben, beantwortete niemand wie üblich die gestrahlte Frage. Ich kann mir eine beliebige Anzahl von Szenarios vorstellen, die eine begrenzte Bestimmung erfordern. Beispielsweise kann die Anzeige von HTML mit einem IFRAME auf der Host-HTML-Seite erfolgen, und wenn Sie ihn gemäß den gerenderten Grenzen eines Bereichs positionieren können, können Sie ihn problemlos in Ihre Benutzeroberfläche integrieren.
Sie können den Ursprung eines Steuerelements mithilfe eines GeneralTransform on Point (0,0) zum visuellen Stammkoordinatensystem bestimmen, und ActualHeight und ActualWidth werden direkt angezeigt.
GeneralTransform gt =
TransformToVisual(Application.Current.RootVisual as UIElement);
Point offset = gt.Transform(new Point(-1, -1));
myFrame.SetStyleAttribute("width", (ActualWidth + 2).ToString());
myFrame.SetStyleAttribute("height", (ActualHeight + 2).ToString());
myFrame.SetStyleAttribute("left", offset.X.ToString());
myFrame.SetStyleAttribute("top", offset.Y.ToString());
myFrame.SetStyleAttribute("visibility", "visible");
In dem obigen Beispiel I verwandelt (-1, -1) und addierten beide 2 Höhe und Breite für das einzelne Pixelgrenzgebiet um einen IFRAME zu kompensieren - wird dieser Code aus einer Arbeitsanwendung angehoben, dass verwendet einen IFRAME zum Rendern von "eingebettetem" HTML, wenn der Browser gehostet wird.
Auch gibt es mehr als eine Möglichkeit, eine Katze zu häuten und für Hit-Tests finden Sie VisualTreeHelper interessant.
Dies gibt jedes UIElement unter einem Punkt (in der Regel von der Maus) zurück. Es gibt eine Überladung, die stattdessen ein Rect verwendet.
Danke - ich habe diese Eigenschaft irgendwie vermisst. – Ken