У меня есть шаблон элемента управления, который содержит путь (помимо других элементов управления).Путь должен быть изменен при изменении размера элемента управления.Точки и размер, описывающие путь, могут быть выражены как относительные доли размера элемента управления.
Вот выдержка из шаблона:
<Path Stroke="Gray" StrokeThickness="5">
<Path.Data>
<PathGeometry>
<PathFigure StartPoint="{TemplateBinding Start}" >
<ArcSegment Point="{TemplateBinding End}" Size="{TemplateBinding Size}" RotationAngle="0" IsLargeArc="True" />
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
Start и End являются типами DependencyProperties типаТочка, размер является свойством DependencyProperty типа Size.
В настоящее время я слушаю событие FrameworkElement.SizeChanged:
void OperationModeIndicator_SizeChanged( object sender, SizeChangedEventArgs e )
{
this.Size = new Size( e.NewSize.Width * 0.45f, e.NewSize.Height * 0.45f );
this.Start = new Point( e.NewSize.Width * 0.35f, e.NewSize.Height * 0.1f );
this.End = new Point( e.NewSize.Width * 0.65f, e.NewSize.Height * 0.1f );
}
Вопрос теперь: есть ли ещеэлегантный) способ привязать свойства пути к размеру родительского элемента управления?