【问题标题】:Get ScaleTransform and RotateTransform from System.Windows.Shapes.Path从 System.Windows.Shapes.Path 获取 ScaleTransform 和 RotateTransform
【发布时间】:2015-01-20 15:25:45
【问题描述】:

我正在尝试从解析 XAML 节点(在本例中为 System.Windows.Shapes.Path)的代码中获取 RotateTransform 值(度数)和 ScaleTransform

<Path Data="M272,0 L0,0" Height="12.274" Canvas.Left="17.997" StrokeStartLineCap="Flat" 
  StrokeEndLineCap="Flat" Stroke="White" StrokeThickness="3" StrokeLineJoin="Miter" 
  Canvas.Top="44.53" Width="146.499" Stretch="Fill" RenderTransformOrigin="0.5,0.5">
  <Path.RenderTransform>
        <TransformGroup>
            <ScaleTransform ScaleX="-1"/>
            <SkewTransform/>
            <RotateTransform Angle="-90"/>
            <TranslateTransform/>
        </TransformGroup>
    </Path.RenderTransform>
</Path>

使用 RenderTransform,我得到一个 Matrix 值,但我无法从中获得角度和 scaleX。

myPath.RenderTransform.Value

如何获取这些信息?

谢谢

【问题讨论】:

    标签: wpf scaletransform rendertransform


    【解决方案1】:

    好的,这就是解决方案:

    TransformGroup tg = myPath.RenderTransform as TransformGroup;
    
    if (tg != null)
    {
        // Get rotation angle
        RotateTransform rt = tg.Children[2] as RotateTransform;
        // DoSomething with rt.Angle
    
        // Get scale factor
        ScaleTransform st = tg.Children[0] as ScaleTransform;
        // DoSomething with st.ScaleX or st.ScaleY
    }
    

    【讨论】:

    • 很适合我。
    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多