ShapeElement.DoFoldToShape – metoda
Vypočte souřadnice bodu, kde spojnice budou dotýkat obvodu tvaru.Pokud definujete obdélníkový tvar přepsat.
Obor názvů: Microsoft.VisualStudio.Modeling.Diagrams
Sestavení: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (v Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)
Syntaxe
'Deklarace
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
Bod, kde se protíná spojnice na ohraničovacím rámečku vzhledem k horní levý ohraničovacího rámečku.
- vectorEndpoint
Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Směr spojnice.Jiný bod na řádku na relativní potentialPoint.Pro vodorovná spojnice souřadnici y bude vždy 0 a svislou spojnici x souřadnice je vždy 0.Má jiné souřadnice libovolného hodnoty, jejíž znaménko označuje směr obrazce z centra potentialPoint.Pro Přímá spojnice poměr x a y dává Sklon čáry a jejich hodnoty jsou libovolného.
Vrácená hodnota
Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Bod, kde by měla ukončit spojnice.
Poznámky
Tato metoda se nazývá určení bodu na hranici, kdy by mělo být ukončeno spojnice obrazce.Ve výchozím nastavení obdélníkového tvaru bod bude ohraničovacího rámečku obrazce.Ale při definování třídy obrazce neobvyklé geometrie, například ikonu tvaru v němž není ikona obdélníkový, pak toto výchozí chování může ponechat mezeru mezi skutečné okrajem tvaru a spojnice.Tuto metodu k výpočtu skutečné bod na okraj tvaru, kdy měla ukončit spojnice můžete přepsat.
Příklady
V tomto příkladu autor určil tvar ikony v definici DSL a dodává ikona, ve kterém byl obrázek eliptický osnovy.Standardně ukončit konektory na ohraničovací rámeček, ale to vypadá jako nevyhovující koncových bodů nejsou k dispozici ve středu strana.DoFoldToShape by proto vypočítat, kde budou spojnice mezi elipsy.Naštěstí je nástroj funkce, která provádí tento úkol pro kruh: jsme není potřeba najít naše škola geometrie knih.Nástroj funkce pracovat elipsu faktorem vstupy a vydělí výstup stejný faktor jsme lze přizpůsobit.
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);
}
}
Zabezpečení rozhraní .NET Framework
- Plná důvěra přímému volajícímu. Částečně zabezpečený kód nemůže tento člen použít. Další informace naleznete v tématu Používání knihoven z částečně důvěryhodného kódu.