本当に頭痛の種になっている問題について、助けが必要です。これは、ユーザーが画像ファイルを読み込んでから、画像を時計回りまたは反時計回りに90度回転できるようにするアプリケーションです。コードは正常に機能しますが、ユーザーが画像を時計回りに回転させてから、反時計回りに回転させて元の位置に戻すことにした場合、画像は本来あるべき場所にありません。私はc#を初めて使用するため、何が欠けているのかわかりません。以下は、時計回りの回転に使用しているコードです。
private int cW = 0;
private void button6_Click(object sender, RoutedEventArgs e)
{
RotateTransform rotateTransform = new RotateTransform();
rotateTransform.CenterX = image1.ActualWidth / 2.0;
rotateTransform.CenterY = image1.ActualHeight / 2.0;
cW += 90;
rotateTransform.Angle = cW;
TransformGroup transformGroup = new TransformGroup();
transformGroup.Children.Add(rotateTransform);
image1.RenderTransform = transformGroup;
}
if/elseステートメントを使用してコードを完全に変更しました。以下は私が探していた結果を私に与えます。
RotateTransform cwRotateTransform;
private void button6_Click(object sender, RoutedEventArgs e)
{
if (cwRotateTransform == null)
{
cwRotateTransform = new RotateTransform();
}
image1.LayoutTransform = cwRotateTransform;
if (cwRotateTransform.Angle == 360)
cwRotateTransform.Angle = 0;
else cwRotateTransform.Angle += 90;
}
反時計回りの場合は、「90」を「-90」に変更しますcwRotateTransform.Angle
。