0
이 코드는 한 번만 실행되어 캔버스를 회전시킵니다. 사용자가 회전 버튼을 두 번째로 누를 때 왜 회전하지 않습니까?이미지 또는 캔버스를 계속 회전하는 방법
XAML을 : 대신으로 RenderTransform마다 한 번으로 RenderTransform을 생성하고 재사용 교체
--update with button
<AppBarButton x:Name="CamRotate90" Margin="0,2,2,0" Width="90" Height="90" FontSize="16" Label="Rotate-Right" Icon="Rotate" Click="CamRotate90_Click"> </AppBarButton> <Canvas x:Name="canvas" Margin="231,28,321,111" Width="700" Height="525" Grid.Row="0" Grid.RowSpan="3" Grid.Column="0"> <Image Canvas.Top="0" Canvas.Left="0" Margin="0" x:Name="preview" Width="700" Height="525" Stretch="UniformToFill" > </Image> </Canvas> private void CamRotate90_Click(object sender, RoutedEventArgs e) { CompositeTransform ct = new CompositeTransform(); ct.CenterX = canvas.ActualWidth/2; ct.CenterY = canvas.ActualHeight/2; ct.Rotation = 90; canvas.RenderTransform = ct; }
시도 + = 90? 또한 위의 코드에서 단추 정의를 삭제하여 이벤트 처리기가 올바르게 정의되었는지 확인하십시오. – kidshaw
작동하지 않습니다. ct.Rotation + = 90; – MilkBottle
매번 새로운 변환 객체를 만들므로 물론 + = 작동하지 않습니다. 죄송합니다. 대신, 버튼을 클릭 할 때마다 클래스의 카운터를 유지 한 다음 변환을 x 90으로 설정하십시오. – kidshaw