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

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

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

記事を読む

no image

UWPでローカルにNoSQLデータベースを作成したい

LiteDBを使う CRUDの例 公式サンプルのとおりやるとデータソース指定のときに権限エ

記事を読む

no image

Xamarin.FormsのAndroidでスプラッシュ画面

Xamarin.Formsでアプリを作成した時、iOSは起動時にLauncher.storyboar

記事を読む

no image

Expression Encoder を組み込んだアプリケーションを配布する際のライセンス問題

Windowsアプリケーションにメディア編集機能を実装したい場合に、Expression Encod

記事を読む

Visual Studio から Android SDK Managerが起動できない

Android SDKやエミュレーターイメージのアップデートを行いたい場合にAndroid SDK

記事を読む

no image

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

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

記事を読む

no image

【Xcode】Capabilities全項目【v6.1時点】

Capabilitiesの各項目が何を示しているのか よくわからなかった、かつ日本語のサイトが少な

記事を読む

【WPF/XAML】チェックボックスのデザイン変更

[xml] <Window x:Class="Sample"

記事を読む

Xamarin.Forms で NavigationPage を PushModalAsync すると例外が発生するときがある

Forms 2.3.4.231 Mapコントロールがあるページで、NavigationPage

記事を読む

UWPでユニットテスト

ユニバーサルWindowsのアプリケーションプロジェクトおよびクラスライブラリプロジェクトのユニット

記事を読む

Message

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

PAGE TOP ↑