Transform

仕事で画面のズームを実装する事になったので、WPFのTransformについて色々調べた事がある。
↓の記事、日付は古いけど、わかりやすいです。
RenderTransformプロパティとLayoutTransformプロパティの違い
ズーム機能を作った時、RenderTransformで試そうとしたけど、上手くいかなかった(というか、理解が足らずどう実装していいかもわからなかった)。結局はLayoutTransformで実装した(そっちの実装が簡単だったので)。
ズームではないけど、2つの違いを見るために書いてみた。
○LayoutTransform
<Window x:Class="TawamureD.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<Button Content="Button 1"/>
<Button Content="Button 2">
<Button.LayoutTransform>
<RotateTransform Angle="45"/>
</Button.LayoutTransform>
</Button>
<Button Content="Button 3"/>
</StackPanel>
</Grid>
</Window>

20121227_1

○RenderTransform
<Window x:Class="TawamureD.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel VerticalAlignment="Center">
<Button Content="Button 1" Width="150"/>
<Button Content="Button center" RenderTransformOrigin="0.5,0.5" Width="150">
<Button.RenderTransform>
<RotateTransform Angle="45"/>
</Button.RenderTransform>
</Button>
<Button Content="Button 3" Width="150"/>
</StackPanel>
</Grid>
</Window>

20121227_6
Button1の後に追加されたので、上に重なる感じで、Button3の前に追加されているので、下に重なる感じになっている、かな。なお、RenderTransformOriginというプロパティは、回転時の基点みたいなもの。

(0,0)→Top-Left
(0,1)→bottom-Left
(1,0)→Top-Right
(1,1)→Bottom-Right

という感じになる。
以下、(1,1)の時
20121227_5
こういうところは、Windows.Formsでは届かなかったところだよな。使うかどうかは別にして。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m