Metoda ShapeElement.DoFoldToShape —
Oblicza punkt gdzie łącznika dotknie obwód kształtu.To zmienić po zdefiniowaniu — prostokątny kształt.
Przestrzeń nazw: Microsoft.VisualStudio.Modeling.Diagrams
Zestaw: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (w Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.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
Punkcie, gdzie przecina łącznika na obwiedni względem górnej lewej części obwiedni.
- vectorEndpoint
Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Kierunek łącznika.Inny punkt na linii, w stosunku do potentialPoint.Dla łącznikiem poziomym Współrzędna Y będzie zawsze równa 0, a dla łącznika pionowego X współrzędnych jest zawsze 0.Innych współrzędnych ma wartość dowolny znak, którego wskazuje kierunek środka kształtu z potentialPoint.Aby łącznik prostoliniowy stosunek X i Y daje nachylenie linii, a ich wartości 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 do prostokątnego kształtu będzie punkt na obwiedni kształtu.Ale po zdefiniowaniu rodzaju kształt, który ma nietypowy geometrii, na przykład kształt ikony w którym ikona nie jest prostokątny, następnie to zachowanie domyślne może zachować odstęp między złącza i rzeczywistych 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 autor określił kształt ikony w definicji DSL i dostarcza ikoną, w którym obraz ma eliptyczne konspektu.Domyślnie łączniki kończyć się na obwiedni, ale wygląda to niezadowalające, gdy punktów końcowych nie są pośrodku strony.Dlatego DoFoldToShape należy obliczyć, gdzie przecinają złącza elipsy.Na szczęście istnieje funkcja narzędzie, które wykonuje to zadanie dla koła: nie musimy znaleźć naszych ksiąg geometrii szkoły średniej.Możemy dostosować funkcji narzędzia do pracy na elipsę przez pomnożenie przez współczynnik nakładów i podzielenie wyniku o taki sam współczynnik.
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 Używanie bibliotek pochodzących z częściowo zaufanego kodu.