我曾期望以下两个 XAML 产生相同的输出。但是,路径上的 RenderTransform 使用了一些我不明白的时髦旋转点。有人可以向我解释为什么这两个 XAML 不等价吗?
<Window x:Class="CenterPathTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Canvas>
<Canvas.RenderTransform>
<TranslateTransform X="50" Y="50"/>
</Canvas.RenderTransform>
<Border Width="100" Height="200">
<Border.RenderTransform>
<TransformGroup>
<TranslateTransform X="70" Y="-100"/>
<RotateTransform Angle="90"/>
</TransformGroup>
</Border.RenderTransform>
<Path Width="100" Height="200" Stretch="Uniform"
Data="M 0,20M 20,0M 6.04,4.51 C6.04,4.51 7.54,3 7.54,3 7.54,3 14.5,10 14.5,10 14.5,10 7.54,17 7.54,17 7.54,17 6.04,15.48 6.04,15.48 6.04,15.48 11.5,10 11.5,10 11.5,10 6.04,4.51 6.04,4.51 z" />
</Border>
</Canvas>
</Window>
我认为以下这一行为是不正确的:
<Window x:Class="CenterPathTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Canvas>
<Canvas.RenderTransform>
<TranslateTransform X="50" Y="50"/>
</Canvas.RenderTransform>
<Path Width="100" Height="200" Stretch="Uniform"
Data="M 0,20M 20,0M 6.04,4.51 C6.04,4.51 7.54,3 7.54,3 7.54,3 14.5,10 14.5,10 14.5,10 7.54,17 7.54,17 7.54,17 6.04,15.48 6.04,15.48 6.04,15.48 11.5,10 11.5,10 11.5,10 6.04,4.51 6.04,4.51 z">
<Path.RenderTransform>
<TransformGroup>
<TranslateTransform X="70" Y="-100"/>
<RotateTransform Angle="90"/>
</TransformGroup>
</Path.RenderTransform>
</Path>
</Canvas>
</Window>