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

公開日: : 最終更新日:2016/07/16 Blog, Microsoft , ,

複数のScrollViewerのスクロール位置を同期したい場合、WPFではScrollChangedイベントでもう一方のスクロール位置を調整することで実現できていた。
UWPのScrollViewerにはScrollChangedイベントが無い。
UWPではViewChangedイベントで同様の実装を行うことが出来る。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <ScrollViewer x:Name="scroll1" Grid.Row="0" Margin="10" 
                  HorizontalScrollBarVisibility="Visible"
                  ViewChanged="scroll1_ViewChanged">
        <ContentControl Width="10000" />
    </ScrollViewer>
    <ScrollViewer x:Name="scroll2" Grid.Row="1" Margin="10" 
                  HorizontalScrollBarVisibility="Visible"
                  ViewChanged="scroll2_ViewChanged">
        <ContentControl Width="10000" />
    </ScrollViewer>
</Grid>
private void scroll1_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
    if (scroll1.HorizontalOffset != scroll2.HorizontalOffset)
    {
        scroll2.ScrollToHorizontalOffset(scroll1.HorizontalOffset);
    }
}

private void scroll2_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
    if (scroll1.HorizontalOffset != scroll2.HorizontalOffset)
    {
        scroll1.ScrollToHorizontalOffset(scroll2.HorizontalOffset);
    }
}

関連記事

no image

Visual Studio 2017 Version15.2 にアップデート後、Xamarin.iOS でビルドエラーが発生時の回避メモ

環境 Visual Studio Enterprise 2017 Version 15.2

記事を読む

no image

【UWP】矢印キーでのフォーカス移動

FocusManagerで上下左右のフォーカス遷移が出来るので、その仕組みを利用してやるビヘイビアを

記事を読む

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

こんにちは。 スマートデバイスといえばタッチ操作、ということで 今日はWindowsストアアプリ

記事を読む

【ストアアプリ】画面遷移の基本①

こんにちは。 Windowsストアアプリをぼちぼち触り始めています。 WindowsRuntim

記事を読む

no image

Windows 10 IoT Core の 製品化メモ

概念実証(Proof of concept)を終了し、製品化を行いたい場合のステップ サインア

記事を読む

no image

Windows8.1 64bitにVB6.0開発環境を構築メモ

MSDNフォーラムの、この投稿はとても素晴らしいです。 windows 8 64bit

記事を読む

Xcode標準テンプレート

Xcodeで新規Projectを作成した時にテンプレートを選ぶことが出来る。 「Choose a

記事を読む

Minnow Board Turbot + Windows 10 IoT Core をSSD上で動作させる

MinnowBoard は SATAが搭載されているので、SSDなどが利用できる。 通常はSDカード

記事を読む

no image

YomiganaWPFTextBox

こんにちは。 WPFでテキストボックスに入力した内容をカナ変換する方法について今日は掲載します

記事を読む

シマンテックインストール時に「指定されたパスが空です。」

Windows10 64bit, Symantec Endpoint Protection はおそら

記事を読む

Message

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

PAGE TOP ↑