我想知道在WPF中是否有一种方法可以创建一个形状(例如:polygon,line,...)但是我们可以使用百分比之类的东西来代替形状点的绝对定位。 / p>
例如,不是像这样的绝对定位线:( X1 = 0,Y1 = 50,X2 = 100,Y2 = 50),我们可以有一个百分比值(0到1)的行像这样(X1 = 0,Y1 = 0.5,X2 = 1,Y2 = 0.5,其中1等于父母的大小)。因此,无论形状的父级大小是多少,形状总是与其父级成比例。
这可以通过依赖属性来完成,但如果有一种方法可以用我描述的东西来做,我会发现它更清晰。我希望我没有错过一些非常明显的东西......
谢谢!
答案 0 :(得分:4)
如果通过对几何体上的缩放变换应用控件的大小来缩放它,则可以获得类似的效果。
<Path Width="100" Height="100" Stroke="Red">
<Path.Data>
<LineGeometry StartPoint="0 0" EndPoint="1 1">
<LineGeometry.Transform>
<ScaleTransform ScaleX="{Binding Path=Width, RelativeSource={RelativeSource FindAncestor, AncestorType=Path}}"
ScaleY="{Binding Path=Height, RelativeSource={RelativeSource FindAncestor, AncestorType=Path}}" />
</LineGeometry.Transform>
</LineGeometry>
</Path.Data>
</Path>
这应绘制一条绝对点(0, 0)
到(100, 100)
的红线。