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

【WPF/XAML】Buttonのテキスト(Content)を自動改行/折り返しさせる

今更WPFを触りはじめました。 それまではほぼ.NETは2.0止まりというオワコン開発者です。

記事を読む

no image

【.NET】正規表現の復習

正規表現エンジン System.Text.RegularExpressions.Regexオブジェ

記事を読む

Visual Studio 2015 Express の Language Pack

探してみたけど見当たらなかったのでメモ残し。 Visual Studio 2015 には言語パック

記事を読む

no image

Windows10 IoT CoreでWindowsアップデートの自動実行を停止する

Manage IoT Core device updates このリンクにアップデートコントロール

記事を読む

no image

Xamarin.Forms で Opacityを設定したGridの表示・非表示を切り替えると、Androidで例外が発生する(Xamarin.Forms 2.3.3.193)

Xamarin 2.3.3.163 あたりから発生するようになったバグ情報があり 実行環境は 2.3

記事を読む

no image

UWPとAzure Web AppsでOData

超メモ。走り書き。 Azure上にSQLデータベースコードファーストなAPIをODataで作成する。

記事を読む

Package ‘Win10SDK_10.0.14393.33,version=10.0.14393.3300’ failed to install.

Visual Studio 2017 RC1 でUWPアプリケーションのコンポーネントインストールす

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

no image

UWP+IoT Coreのシリアル通信メモ

Windows10 IoT + Raspberry Pi を始めようとしているのだが、どうもセンサー

記事を読む

Message

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

PAGE TOP ↑