2015-01-20 3 views
2

Я пытаюсь получить RotateTransform значение (градусы) и ScaleTransform из кода разбора XAML узлов, в данном случае System.Windows.Shapes.Path.Get ScaleTransform и RotateTransform от System.Windows.Shapes.Path

<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 

Как я могу получить эту информацию?

Спасибо

ответ

0

Ok это решение:

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 
}