ShapeElement.DoFoldToShape - метод
Вычисляет точку, где соединитель коснется периметра фигуры. Переопределите это, если вы определяете не прямоугольную форму.
Пространство имен: Microsoft.VisualStudio.Modeling.Diagrams
Сборка: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (в Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)
Синтаксис
'Декларация
Public Overridable Function DoFoldToShape ( _
potentialPoint As PointD, _
vectorEndpoint As PointD _
) As PointD
public virtual PointD DoFoldToShape(
PointD potentialPoint,
PointD vectorEndpoint
)
Параметры
- potentialPoint
Тип: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Точка, в которой соединитель пересекает ограничивающий прямоугольник, относительно верхнего левого угла ограничивающего прямоугольника.
- vectorEndpoint
Тип: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Направление соединителя.Другая точка на линии относительно potentialPoint.Для горизонтального соединителя, координата y всегда будет равно 0, а для вертикального соединителя координата х всегда равно 0.Другая координата содержит произвольное значение, знак которого указывает направление центра фигуры из точки potentialPoint.Для прямого соединителя отношение x и y дает наклон линии и их значения произвольны.
Возвращаемое значение
Тип: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Точка, в которой должен завершиться соединитель.
Заметки
Этот метод вызывается для определения точки на границе фигуры, в которой соединитель должен быть завершен. По умолчанию для прямоугольной фигуры, точка находится в прямоугольнике фигуры. Но при определении класса фигуры, которая имеет необыкновенный геометрических объектов, например форма Значка, в которой Значок прямоугольн нет, то этот реакции на событие по умолчанию может оставить пустым и фактическим соединителем между краем данной фигуры. Можно переопределить этот метод для расчета фактическую точку на краю данной фигуры, в которой соединитель должна завершиться.
Примеры
В этом примере, автор определяет форму Значка в определении доменного языка, и предоставляет Значок, в котором рисунке имеет эллиптическую структуру. По умолчанию соединители конца в прямоугольнике, но это имеет неудовлетворительным точки после завершения не посередине стороны. Поэтому должно DoFoldToShape вычислить место соединитель, будут пересекать эллипс. Удачно, функция удобство использования, которая выполняет эту задачу для окружности. нам не требуется найти наши книги геометрического объекта средней школы. Это можно адаптировать для удобства использования функции для работы с помощью перемножения эллипса входные и выходные данные разделения с тем же фактором.
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);
}
}
Безопасность платформы .NET Framework
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Microsoft.VisualStudio.Modeling.Diagrams - пространство имен