WPF:扩展路径的正确方法?

for*_*yez 22 c# wpf xaml

我有一条路(看起来像一个椭圆形):

<Path Data="Bla Bla"/>
Run Code Online (Sandbox Code Playgroud)

现在我想将路径的宽度和高度缩放到我喜欢的任何位置.我找到了一个方法:

<Grid Width="400" Height="50">
<Viewbox Stretch="Fill">
    <Path Data="Bla Bla"/>
</Viewbox>  
</Grid>
Run Code Online (Sandbox Code Playgroud)

这有效,但我想知道这是否是最有效的方法呢?(我不得不引入网格和视图框来执行此操作)

Fre*_*lad 22

缩放路径的另一种方法是使用RenderTransformLayoutTransform

<Path Data="Bla Bla"
      RenderTransformOrigin="0.5, 0.5">
    <Path.RenderTransform>
        <ScaleTransform ScaleX="1.5" ScaleY="1.5"/>
    </Path.RenderTransform>
</Path>
Run Code Online (Sandbox Code Playgroud)

  • 通常更喜欢`LayoutTransform`,这样当`Path`增长时,它在'Panel`上占用的空间也是如此. (5认同)

Ela*_*atz 13

仅供参考,因为ViewBox在其中使用了ScaleTransform,它基本上与性能一样好.


Fra*_*ori 7

你基本上有3种方法来扩展Path:

  1. 将其包装到ViewBox中
  2. 应用ScaleTransform
  3. 明确设置宽度和高度

方法1.和2.将产生相同的结果,而3.略有不同,因为形状将改变大小,但笔划将保持原始厚度(因此它不是真正的缩放).

方法1.当您想要填充给定大小的区域时,这将是合适的.另一方面,方法2对于将路径放大(或减小)给定量是有用的,例如.原始尺寸的两倍.