我有一个包含路径的控件模板(除了其他控件)。调整控件大小时应调整路径大小。描述路径的点和大小可以表示为控制大小的相对分数。
以下是模板的摘录:
<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 是 Point 类型的 DependencyProperty,Size 是 Size 类型的 DependencyProperty。
我目前正在做的是监听 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 );
}
现在的问题是:是否有另一种(更优雅)的方式将路径的属性绑定到父控件的大小?