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

公開日: : 最終更新日: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

関連記事

Xamarin iOS, Android での位置情報、Bluetoothの有効化メモ

OSが勝手に出してくれたりくれなかったりのところを整理するためのメモ 諸事情によりサンプルはXama

記事を読む

no image

【.NET】イベントのサブスクライブとサブスクライブ解除

.NETでイベントをハンドルする方法 サブスクライブ void CustomEven

記事を読む

no image

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

Raspberry Pi 3 Model の Ubuntu や Raspbian で OmxPlay

記事を読む

【iPhoneアプリ】リリース手順〜審査申し込み〜

初めてiPhoneアプリを作成したがリリース手順が 手元の参考書と全然違って困ったのでメモ。

記事を読む

[OxyPlot]errro CS0117: ‘Resource.Attribute’ に ‘mediaRouteSettingsDrawable’ の定義がありません

Xamarin.Formsでグラフ描画を行う方法のひとつにOxyPlotというライブラリがある。

記事を読む

【VisualStudio2015】UWPアプリケーションのXAMLデザイナにて「パッケージを登録できませんでした。」

VisualStudio2015 / UWPアプリケーション / XAMLデザイナ / エラー のメ

記事を読む

【.NET】16進数文字列から色を設定する

文字列→Colorクラスへの変換メモ プログラム上でFromArgbメソッドに16

記事を読む

拡張メソッドは、非ジェネリック静的クラスで定義される必要があります

単純にメッセージどおり。 public static class BaseExtensi

記事を読む

no image

Raspberry Pi 3 Model B 各OS、動画プレイヤーでの再生比較

ベンチマークではなく、ただ感想をメモしただけ。 Windows 10 IoT Core C#

記事を読む

SIPSorceryにて、「型 ‘log4net.ILog’ が参照されていないアセンブリで定義されています。」

ある時、SIPクライアントの開発を行っていた。 SIPクライアントライブラリの選定にあたって S

記事を読む

Message

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

PAGE TOP ↑