Metoda ShapeElement.DoFoldToShape —
Oblicza punkt, gdy łącznik będzie touch obwód kształtu.Zastąpienie, w przypadku zdefiniowania-prostokątnego kształtu.
Przestrzeń nazw: Microsoft.VisualStudio.Modeling.Diagrams
Zestaw: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (w Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)
Składnia
'Deklaracja
Public Overridable Function DoFoldToShape ( _
potentialPoint As PointD, _
vectorEndpoint As PointD _
) As PointD
public virtual PointD DoFoldToShape(
PointD potentialPoint,
PointD vectorEndpoint
)
Parametry
- potentialPoint
Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Punkt, w którym przecina łącznika na obwiedni względem górnej lewej obwiedni.
- vectorEndpoint
Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Kierunek łącznika.Inny punkt na linii, względem potentialPoint.Dla łącznikiem poziomym, Współrzędna Y będzie zawsze równa 0 i łącznikiem pionowym x współrzędnych jest zawsze 0.Innych współrzędnych ma wartość dowolny znak, którego wskazuje kierunek na środku kształtu z potentialPoint.Aby Łącznik prostoliniowy wskaźnik x i y daje nachylenie linii i ich wartościami są dowolne.
Wartość zwracana
Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Punkt, w którym powinna kończyć się łącznik.
Uwagi
Metoda ta jest wywoływana w celu określenia punktu na krawędzi kształtu łącznika powinno zostać zakończone.Domyślnie dla kształtu prostokątnego punktu będzie na obwiedni kształtu.Jednak w przypadku zdefiniowania klasy kształtu, który ma nietypowe geometrię, na przykład kształt ikony, w którym ikona nie jest prostokątny, to domyślne zachowanie może być pozostawieniu przerwa między łącznika i rzeczywistej krawędzi kształtu.Można zastąpić tę metodę, aby obliczyć rzeczywiste punktu na krawędzi kształtu, w którym powinna kończyć się łącznik.
Przykłady
W tym przykładzie autora został określony kształt na ikonę w definicji DSL i dostaw ikona, w którym obraz ma eliptyczny konspektu.Domyślnie łączniki kończyć się na obwiedni, ale to niezadowalające po wygląda na środku strony nie są punktami końcowymi.DoFoldToShape powinny zatem obliczyć, gdy łącznik będzie cross elipsy.Na szczęście istnieje funkcja narzędzie, które wykonuje to zadanie dla okręgu: nie musimy znaleźć naszych ksiąg geometrii high school.Firma Microsoft może dostosować funkcji narzędzia do pracy przez pomnożenie produkcji przez współczynnik i dzieląc wynik przez współczynnik ten sam elipsy.
public partial class MyEllipticalIconShape
{
public override PointD DoFoldToShape(PointD potentialPoint, PointD vectorEndpoint)
{
double width = this.Bounds.Width;
double height = this.Bounds.Height;
double k = width / height; // transform from ellipse to circle
// This utility method folds to a circle. But we have an ellipse, so
// we adjust the Y values of the inputs:
PointD result = ShapeGeometry.SnapToCircle(
new PointD(width / 2, width / 2), // center, relative to shape
width / 2, // radius of circle
new PointD(vectorEndpoint.X, vectorEndpoint.Y * k),
new PointD(potentialPoint.X, potentialPoint.Y * k));
// Transform the circular result back to the ellipse:
return new PointD(result.X, result.Y / k);
}
}
Zabezpieczenia programu .NET Framework
- Pełne zaufanie do bezpośredniego wywołującego. Tego elementu członkowskiego nie można używać w kodzie częściowo zaufanym. Aby uzyskać więcej informacji, zobacz Przy użyciu bibliotek z częściowo zaufanego kodu..