2011-05-02 3 views

답변

3

켄트 Boogarts 제안은 하나 직접 Inverse에 결합 할 수 있기 때문에 하드가 캔버스의 변환을 구현하기 위해 심지어 아니에요, 난 처음에 너무 생각 것입니다 아이들을 다른 방향으로 회전시킵니다.

+0

고마워,이 (RenderTransform.Inverse) 내가 원하는 anwer의 일종이었다. 캔버스가 회전 할 때 잘 작동했습니다. 그러나 어쨌든 주어진 변환을 캔버스로 변환 할 때 inverse를 적용하지 않을 것인가? rotate + translate가 캔버스에 적용 (회전 및 이동) 될 때 회전 만 반전해야합니까? –

+0

그런 다음 TransformGroup을 사용해야합니다. 바인딩 경로를 'RenderTransform.Children [1] .Inverse'로 변경하면 인덱스가 올바른 변환을 가리켜 야합니다. –

+0

예 .. 친애하는 친구, 당신은 절대적으로 옳습니다. RenderTransform.Children을 사용했습니다. 반대로 작동했습니다. 다시 한 번 감사드립니다. –

0

아니, 당신은 각 자녀에 반대 변환을 적용하지 않는 한이 일을있는 방법은 없습니다. 아마 당신이 달성하고자하는 것을 설명한다면 아마 그렇게하는 것이 더 쉬운 방법 일 것입니다.

<ItemsControl> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <Canvas> 
       <Canvas.RenderTransform> 
        <RotateTransform /> 
       </Canvas.RenderTransform> 
      </Canvas> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <ContentControl Content="{Binding}" 
          RenderTransform="{Binding RelativeSource={RelativeSource AncestorType=Canvas}, 
                 Path=RenderTransform.Inverse}"/> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 
2

을 나는 유일한 방법은 Canvas를 회전하는 것입니다 생각 :

관련 문제