TouchToolKit for WinForms
ズーム
TouchToolKit の使い方 > C1Zoomコンポーネント > ズーム

C1Zoomコンポーネントを配置したフォームを2本の指でタッチし、指を画面に触れたまま指と指の間隔を広げるとフォーム上のコントロールをズームできます。

この機能はC1Zoom.AllowPinchZoomプロパティがTrueのときに有効です。

コードによるズーム率の設定または取得

C1Zoom.ZoomFactorプロパティで設定または取得できます。次のコードはボタンのクリックによってズーム率を200%に変更します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    C1Zoom1.ZoomFactor = 2.0F
End Sub

C# コードの書き方

C#
コードのコピー
private void button1_Click(object sender, EventArgs e)
{
    C1Zoom1.ZoomFactor = 2.0f;
}

ズーム率の最大値

C1Zoom.MaxZoomFactorプロパティで設定します。ズーム率の最小値は100%で固定です。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' ズーム率の最大値を400%にする
C1Zoom1.MaxZoomFactor = 4.0F

C# コードの書き方

C#
コードのコピー
// ズーム率の最大値を400%にする
C1Zoom1.MaxZoomFactor = 4.0f;

ダブルタップによるズーム

既定ではダブルタップ(画面をすばやく2回タップする)によるズームが有効です。この機能はC1Zoom.AllowDoubleTapZoomプロパティをFalseにすると無効にできます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
C1Zoom1.AllowDoubleTapZoom = False

C# コードの書き方

C#
コードのコピー
C1Zoom1.AllowDoubleTapZoom = false;

ズーム中のプレビュー表示

既定では、タッチ操作によるズーム中に結果のプレビューが表示されます。このプレビューにより、ユーザーはズーム率によらずにタッチに最適な大きさを目視で決定できます。

パフォーマンスの向上、プレビュー中の制限の回避、他の機能との動作の統一といった要求に合わせてこの機能は無効にできます。C1Zoom.ZoomPreviewModeプロパティがNoPreviewのときプレビューを表示しません。また、AlternativeContentのときズーム率またはズーム中を示す文字列を代わりに表示できます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent

C# コードの書き方

C#
コードのコピー
C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent;

代替コンテンツ

C1Zoom.ZoomPreviewModeプロパティがAlternativeContentのとき、ズーム中であることを示す文字列を表示できます。この文字列のフォント、文字色、メッセージはC1Zoom.AlternativeContentSettingsプロパティで設定します。AlternativeContentSettings.Formatプロパティの文字列に“{Percentage}”を入力すると、その部分は現在のズーム率を百分率で表示した値に置換されます。“{ZoomFactor}”を入力するとズーム率の倍率に置換します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent
C1Zoom1.AlternativeContentSettings.Font = New Font("MS ゴシック", 20.0F)
C1Zoom1.AlternativeContentSettings.ForeColor = Color.Blue
C1Zoom1.AlternativeContentSettings.Format = "ズーム中 x{ZoomFactor}"

C# コードの書き方

C#
コードのコピー
C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent;
C1Zoom1.AlternativeContentSettings.Font = new Font("MS ゴシック", 20.0f);
C1Zoom1.AlternativeContentSettings.ForeColor = Color.Blue;
C1Zoom1.AlternativeContentSettings.Format = "ズーム中 x{ZoomFactor}";

スナップポイント

タッチでは大まかな操作が可能なため、ユーザーはタッチ操作で197%や202%といったズーム率を設定できます。これを200%のようにきりのいい値に自動的に揃える仕組みが「スナップ」です。スナップポイントはきりのいい値のコレクションと、スナップを発動する基準となる前後数パーセントの値を指定します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent

    ' 最大ズーム率を400%にする
    C1Zoom1.MaxZoomFactor = 4.0F

    ' スナップ間隔を5%にする
    C1Zoom1.ZoomSnapDistance = 0.05F

    ' 195%〜205%を200%にスナップする
    C1Zoom1.ZoomSnapPoints.Add(2.0F)

    ' 295%〜305%を300%にスナップする
    C1Zoom1.ZoomSnapPoints.Add(3.0F)
End Sub

Private Sub C1Zoom1_ZoomFactorChanged(sender As System.Object, e As System.EventArgs) Handles C1Zoom1.ZoomFactorChanged
    Me.Text = String.Format("{0:P}", C1Zoom1.ZoomFactor)
End Sub

C# コードの書き方

C#
コードのコピー
private void Form1_Load(object sender, EventArgs e)
{
    C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent;

    // 最大ズーム率を400%にする
    C1Zoom1.MaxZoomFactor = 4.0f;

    // スナップ間隔を5%にする
    C1Zoom1.ZoomSnapDistance = 0.05f;

    // 195%〜205%を200%にスナップする
    C1Zoom1.ZoomSnapPoints.Add(2.0f);

    // 295%〜305%を300%にスナップする
    C1Zoom1.ZoomSnapPoints.Add(3.0f);
}

private void C1Zoom1_ZoomFactorChanged(object sender, EventArgs e)
{
    this.Text = string.Format("{0:P}", C1Zoom1.ZoomFactor);
}

マウスホイールによるズーム

Ctrlキーを押したままマウスのホイールを前方に回転するとフォームの拡大を実行できます。手前側に回転すると縮小になります。この機能を有効にするには、C1Zoom.AllowMouseWheelZoomプロパティをTrueに設定します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
C1Zoom1.AllowMouseWheelZoom = True

C# コードの書き方

C#
コードのコピー
C1Zoom1.AllowMouseWheelZoom = true;
注意

ズーム時にコンテンツを中央に表示する

既定では、C1Zoomを配置したフォームをマウス操作によってズームするとフォーム上のコントロールが右下に向かって大きくなります。これは、フォーム上のコントロールが既定で左上に固定されているためです(Control.Anchor=TopLeft)。C1Zoom.InnerPanelLayoutModeプロパティをMiddleCenterに変更すると、コントロールはその位置を保持したまま中央に向かって拡大します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
C1Zoom1.InnerPanelLayoutMode = C1.Win.C1TouchToolKit.InnerPanelLayoutMode.MiddleCenter

C# コードの書き方

C#
コードのコピー
C1Zoom1.InnerPanelLayoutMode = C1.Win.C1TouchToolKit.InnerPanelLayoutMode.MiddleCenter;

ズーム時に背景を変更する

C1Zoomコンポーネントを配置したフォームのサイズを大きくした状態でズーム率を100%にすると、元のコンテンツがない部分に余白が生じます。この余白を背景として背景色または背景イメージを設定できます。

背景色を設定するにはC1Zoom.BackColorプロパティを使用します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
C1Zoom1.BackColor = Color.DarkGray

C# コードの書き方

C#
コードのコピー
C1Zoom1.BackColor = Color.DarkGray;

背景イメージを設定するには、C1Zoom.BackgroundImageプロパティおよびC1Zoom.BackgroundImageLayoutプロパティを使用します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
C1Zoom1.BackgroundImage = New Bitmap("Background.png")
C1Zoom1.BackgroundImageLayout = ImageLayout.Tile

C# コードの書き方

C#
コードのコピー
C1Zoom1.BackgroundImage = new Bitmap("Background.png");
C1Zoom1.BackgroundImageLayout = ImageLayout.Tile;