RotateFlip
はWinFormsのメソッドですので、WPFでは(基本的には)使えません。
Image.RotateFlip(RotateFlipType) メソッド (System.Drawing) | Microsoft Docs
読み込み時に適切に回したい場合は、こちらが参考になりそうです(動作確認はしていません)
C# WPF Exifの回転情報を取得して画像を表示する - Qiita
ボタン操作等で自分で回したい場合は、RotateTransform
がいいでしょう。
RotateTransform クラス (System.Windows.Media) | Microsoft Docs
回転以外にもいろいろできます。
変換の概要 - WPF .NET Framework | Microsoft Docs
xml
1<Window
2 x:Class="Questions344215.MainWindow"
3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5 Width="300"
6 Height="300">
7 <Grid>
8 <Border
9 HorizontalAlignment="Center"
10 VerticalAlignment="Top"
11 BorderBrush="Black"
12 BorderThickness="1">
13 <Image
14 Width="133"
15 Height="95"
16 MouseDown="kaitennn"
17 Source="https://teratail-v2.storage.googleapis.com/uploads/avatars/u13/132786/KnkDDC5A_thumbnail.jpg"
18 Stretch="Fill">
19 <!-- レイアウトに影響してボーダーもサイズが変わる -->
20 <Image.LayoutTransform>
21 <RotateTransform x:Name="rotateTransform1" />
22 </Image.LayoutTransform>
23 </Image>
24 </Border>
25
26 <Border
27 HorizontalAlignment="Center"
28 VerticalAlignment="Bottom"
29 BorderBrush="Black"
30 BorderThickness="1">
31 <Image
32 Width="133"
33 Height="95"
34 MouseDown="kaitennnnn"
35 RenderTransformOrigin="0.5,0.5"
36 Source="https://teratail-v2.storage.googleapis.com/uploads/avatars/u13/132786/KnkDDC5A_thumbnail.jpg"
37 Stretch="Fill">
38 <!-- こちらはレイアウトには影響せず見た目だけ回転 -->
39 <Image.RenderTransform>
40 <RotateTransform x:Name="rotateTransform2" />
41 </Image.RenderTransform>
42 </Image>
43 </Border>
44 </Grid>
45</Window>
cs
1using System.Windows;
2
3namespace Questions344215
4{
5 public partial class MainWindow : Window
6 {
7 public MainWindow() => InitializeComponent();
8
9 private void kaitennn(object sender, RoutedEventArgs e)
10 => rotateTransform1.Angle += 90;
11
12 private void kaitennnnn(object sender, RoutedEventArgs e)
13 => rotateTransform2.Angle += 90;
14 }
15}
上はLayoutTransform
での回転。レイアウトにも影響します。
Border
ごと回転しているわけではなく、Image
の回転によってBorder
サイズが変わりました。
下はRenderTransform
での回転。レイアウトに影響しません。
Border
はImage
が回っていることに気付かずそのまま。Image
もはみ出たり重なったりします。
問題がなければRenderTransform
のほうが軽いです。
レイアウトが崩れて困った場合は、LayoutTransform
を使用します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/15 22:54
2021/06/16 06:09