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);
    }
}

関連記事

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

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

記事を読む

no image

TFS2013ExpressでService Unavailable 503

【現象】 TFSつながらない。ブラウザからのホームもVisualStudioのチームエクスプローラ

記事を読む

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

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

記事を読む

【iPhoneアプリ】リリース手順〜iTunesConnect登録〜

AppStoreに有料アプリ、iAdアプリを公開するためには、 iTunes Connectで

記事を読む

no image

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

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

記事を読む

Xamarin.FormsのTabbedPageでバッジを表示する

iOSのタブバーはNative側でバッジ機能があるのだが、Androidにはそもそもバッジが無いらし

記事を読む

no image

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

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

記事を読む

no image

属性を使って、列挙型の列挙子を並び替え、フィルタリングする

メモだよ

記事を読む

VisualStudio2015でiOSアプリケーション開発

こんにちは。 Windows10にアップグレードしました。 VisualStudioも201

記事を読む

no image

シングルボードコンピュータの動作温度について

Raspberry Pi 3 で屋外用のIoT機器を作成できないかと調べていたが、どうやらRaspb

記事を読む

Message

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

PAGE TOP ↑