[UWP] FlipView の左右ボタンのタップイベントを制御する

FlipView をマウスで操作するときに出てくる左右ボタンを取得してタップイベントなどを制御する。

NuGet で WinRTXamlToolkit.UWP をインストール。

タップイベントをバブルアップさせたくない場合。

<FlipView Loaded="FlipView_Loaded" Unloaded="FlipView_Unloaded"><!-- contents --></FlipView>
using WinRTXamlToolkit.Controls.Extensions;
 
private void FlipViewButton_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
{
    e.Handled = true;
}
 
private void FlipView_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    var flipView = (FlipView)sender;
    var buttons = VisualTreeHelperExtensions.GetDescendantsOfType<Button>(flipView);
    foreach (var button in buttons)
    {
        button.Tapped += FlipViewButton_Tapped;
    }
}
 
private void FlipView_Unloaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    var flipView = (FlipView)sender;
    var buttons = VisualTreeHelperExtensions.GetDescendantsOfType<Button>(flipView);
    foreach (var button in buttons)
    {
        button.Tapped -= FlipViewButton_Tapped;
    }
}

カテゴリー: UWP タグ: , , パーマリンク