【ストアアプリ】画像の光学式ズーム

公開日: : 最終更新日:2015/10/20 Blog, Microsoft , ,

こんにちは。
スマートデバイスといえばタッチ操作、ということで
今日はWindowsストアアプリでのピンチイン・ピンチアウトによる
画像の拡大・縮小方法を実装してみます。

プロジェクトに画像を追加します。

mani1

mani2

ManipulationDeltaイベントを使います。
※このイベントはPresentationFramework.dllにも存在し、WPF上でも同様に実現が可能だと思います。

<Page
    x:Class="ManipulationSample.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ManipulationSample"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Image x:Name="hoge" Width="500" Height="500" Source="ms-appx:///Assets/nezumi.png"
               RenderTransformOrigin="0.5,0.5"
               ManipulationMode="Scale"
               ManipulationDelta="Image_ManipulationDelta"/>
    </Grid>
</Page>
private void Image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
    hoge.Width *= e.Delta.Scale;
    hoge.Height *= e.Delta.Scale;
}

mani3 mani4
シミュレータ上では縮小/拡大モードを選択し、任意の位置をクリック&マウスホイールでピンチイン・ピンチアウト操作が行えます。

【参考】
https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.ui.xaml.input.manipulationmodes.aspx

関連記事

no image

【VB.NET】async および await キーワードの使用

.NET Framework4.5(C#5.0, VB11.0)の新機能 Async/Awai

記事を読む

no image

UWPでMicrosoft.OData.Clientを使用する時、LINQ式でエラー

UWPからは非同期メソッドを実行する必要があるので、通常はExecuteAsyncをコールするが、

記事を読む

no image

SmallBasicで拡張ライブラリを使用する

こんにちは。 teratailにて以下の質問に遭遇しまして。 small basic の 拡

記事を読む

no image

【C#,WinForms】XMLデータをListViewに表示し、チェック項目のみXML保存させる

MSDNフォーラムの以下についてサンプルを組んだので掲載。 ListViewでチェックされた値

記事を読む

Xamarin.Androidで起動時にアプリケーションを起動

RECEIVE_BOOT_COMPLETEDの権限必要 ActionBootCompleted を

記事を読む

no image

Xamarin.UITest, Xamarin Test Cloud にて iPhone 6 Plus, 6S Plus, 7 Plus などで app.Tap が効かない

動作しないというか、app.Tapがどうしても反応しない。 app.ScreenShotなどは動作す

記事を読む

no image

UWPのScrollViewerでスクロール位置の同期を行うメモ

複数のScrollViewerのスクロール位置を同期したい場合、WPFではScrollChanged

記事を読む

【WPF/XAML】Colorsクラスのカラーテーブル

http://msdn.microsoft.com/ja-jp/library/system.win

記事を読む

no image

RPi3 OmxPlayer / VLC Player 連続再生2回目から映像が乱れる問題

Raspberry Pi 3 Model の Ubuntu や Raspbian で OmxPlay

記事を読む

no image

【TFS2013】Visual Studio 2005 Professional から TFS2013へ接続

こんにちは。 私の周りではいまだにレガシーな開発環境を使いつづけているプロジェクトが多いです。

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑