Visual.TransformToAncestor Metodo

Definizione

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore specificato dell’oggetto visivo.Returns a transform that can be used to transform coordinates from the Visual to the specified ancestor of the visual object.

Overload

TransformToAncestor(Visual3D)

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore Visual3D specificato dell’oggetto visivo.Returns a transform that can be used to transform coordinates from the Visual to the specified Visual3D ancestor of the visual object.

TransformToAncestor(Visual)

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore Visual specificato dell’oggetto visivo.Returns a transform that can be used to transform coordinates from the Visual to the specified Visual ancestor of the visual object.

TransformToAncestor(Visual3D)

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore Visual3D specificato dell’oggetto visivo.Returns a transform that can be used to transform coordinates from the Visual to the specified Visual3D ancestor of the visual object.

public:
 System::Windows::Media::Media3D::GeneralTransform2DTo3D ^ TransformToAncestor(System::Windows::Media::Media3D::Visual3D ^ ancestor);
public System.Windows.Media.Media3D.GeneralTransform2DTo3D TransformToAncestor (System.Windows.Media.Media3D.Visual3D ancestor);
member this.TransformToAncestor : System.Windows.Media.Media3D.Visual3D -> System.Windows.Media.Media3D.GeneralTransform2DTo3D
Public Function TransformToAncestor (ancestor As Visual3D) As GeneralTransform2DTo3D

Parametri

ancestor
Visual3D

Oggetto Visual3D nel quale vengono trasformate le coordinate.The Visual3D to which the coordinates are transformed.

Restituisce

Trasformazione utilizzabile per trasformare le coordinate da Visual al predecessore Visual3D specificato dell’oggetto visivo.A transform that can be used to transform coordinates from the Visual to the specified Visual3D ancestor of the visual object.

TransformToAncestor(Visual)

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore Visual specificato dell’oggetto visivo.Returns a transform that can be used to transform coordinates from the Visual to the specified Visual ancestor of the visual object.

public:
 System::Windows::Media::GeneralTransform ^ TransformToAncestor(System::Windows::Media::Visual ^ ancestor);
public System.Windows.Media.GeneralTransform TransformToAncestor (System.Windows.Media.Visual ancestor);
member this.TransformToAncestor : System.Windows.Media.Visual -> System.Windows.Media.GeneralTransform
Public Function TransformToAncestor (ancestor As Visual) As GeneralTransform

Parametri

ancestor
Visual

Oggetto Visual nel quale vengono trasformate le coordinate.The Visual to which the coordinates are transformed.

Restituisce

Valore di tipo GeneralTransform.A value of type GeneralTransform.

Eccezioni

ancestor è null.ancestor is null.

ancestor non è un predecessore dell’elemento visivo.ancestor is not an ancestor of the visual.

Gli oggetti visivi non sono correlati.The visual objects are not related.

Esempi

Nell'esempio di markup seguente viene TextBlock illustrato un oggetto annidato StackPanel all'interno di due oggetti.The following markup example shows a TextBlock that is nested within two StackPanel objects.

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
  <StackPanel Margin="16">
    <StackPanel Margin="8">
      <TextBlock Name="myTextBlock" Margin="4" Text="Hello, world" />
    </StackPanel>
  </StackPanel>
</Window>

Nell'esempio di codice seguente viene illustrato come utilizzare TransformToAncestor il metodo per recuperare l'offset dell' TextBlock oggetto rispetto all'oggetto Windowche lo contiene.The following code example shows how to use the TransformToAncestor method to retrieve the offset of the TextBlock relative to the containing Window. I valori di offset sono contenuti nell'oggetto GeneralTransformrestituito.The offset values are contained in the returned GeneralTransform.

// Return the general transform for the specified visual object.
GeneralTransform generalTransform1 = myTextBlock.TransformToAncestor(this);

// Retrieve the point value relative to the parent.
Point currentPoint = generalTransform1.Transform(new Point(0, 0));
' Return the general transform for the specified visual object.
Dim generalTransform1 As GeneralTransform = myTextBlock.TransformToAncestor(Me)

' Retrieve the point value relative to the parent.
Dim currentPoint As Point = generalTransform1.Transform(New Point(0, 0))

L'offset prende in considerazione i Margin valori per tutti gli oggetti all'interno Windowdell'oggetto che lo contiene.The offset takes into account the Margin values for all objects within the containing Window. In questo caso, X è 28 e Y è 28.In this case, X is 28, and Y is 28.

Commenti

In alternativa, è possibile usare il VisualTreeHelper.GetOffset metodo per recuperare l'offset di un oggetto visivo rispetto al relativo elemento padre.Alternatively, you can use the VisualTreeHelper.GetOffset method to retrieve the offset of a visual object relative to its parent. I valori di offset sono contenuti nel valore Vector restituito.The offset values are contained within the returned Vector value.

// Return the offset vector for the TextBlock object.
Vector vector = VisualTreeHelper.GetOffset(myTextBlock);

// Convert the vector to a point value.
Point currentPoint = new Point(vector.X, vector.Y);
' Return the offset vector for the TextBlock object.
Dim vector As Vector = VisualTreeHelper.GetOffset(myTextBlock)

' Convert the vector to a point value.
Dim currentPoint As New Point(vector.X, vector.Y)

Si applica a