MenuScrollingVisibilityConverter MenuScrollingVisibilityConverter MenuScrollingVisibilityConverter MenuScrollingVisibilityConverter Class

定義

メニューのスクロール時にリピート ボタンの可視性を処理するデータ バインディング コンバーターを表します。Represents a data-binding converter to handle the visibility of repeat buttons in scrolling menus.

public ref class MenuScrollingVisibilityConverter sealed : System::Windows::Data::IMultiValueConverter
public sealed class MenuScrollingVisibilityConverter : System.Windows.Data.IMultiValueConverter
type MenuScrollingVisibilityConverter = class
    interface IMultiValueConverter
Public NotInheritable Class MenuScrollingVisibilityConverter
Implements IMultiValueConverter
継承
MenuScrollingVisibilityConverterMenuScrollingVisibilityConverterMenuScrollingVisibilityConverterMenuScrollingVisibilityConverter
実装

次の例では、メニューの ScrollViewerControlTemplateMenuScrollingVisibilityConverter を使用します。The following example uses the MenuScrollingVisibilityConverter in the ControlTemplate of a ScrollViewer for a menu. 完全な例については、「 ControlTemplates を使用したスタイルのサンプル」を参照してください。For the complete example, see Styling with ControlTemplates Sample.

<!--ScrollViewer for a MenuItem-->
<MenuScrollingVisibilityConverter x:Key="MenuScrollingVisibilityConverter" />

<Style x:Key="MenuScrollViewer"
       TargetType="{x:Type ScrollViewer}"
       BasedOn="{x:Null}">
  <Setter Property="HorizontalScrollBarVisibility"
          Value="Hidden" />
  <Setter Property="VerticalScrollBarVisibility"
          Value="Auto" />
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type ScrollViewer}">
        <Grid SnapsToDevicePixels="True">
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
          </Grid.ColumnDefinitions>
          <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
          </Grid.RowDefinitions>
          <Border Grid.Row="1"
                  Grid.Column="0">
            <ScrollContentPresenter Margin="{TemplateBinding Padding}" />
          </Border>
          <RepeatButton Style="{StaticResource MenuScrollButton}"
                        Grid.Row="0"
                        Grid.Column="0"
                        Command="{x:Static ScrollBar.LineUpCommand}"
                        CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                        Focusable="False">
            <RepeatButton.Visibility>
              <MultiBinding FallbackValue="Visibility.Collapsed"
                            Converter="{StaticResource MenuScrollingVisibilityConverter}"
                            ConverterParameter="0">
                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                         Path="ComputedVerticalScrollBarVisibility" />
                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                         Path="VerticalOffset" />
                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                         Path="ExtentHeight" />
                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                         Path="ViewportHeight" />
              </MultiBinding>
            </RepeatButton.Visibility>
            <Path Fill="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}"
                  Data="{StaticResource UpArrow}" />
          </RepeatButton>
          <RepeatButton Style="{StaticResource MenuScrollButton}"
                        Grid.Row="2"
                        Grid.Column="0"
                        Command="{x:Static ScrollBar.LineDownCommand}"
                        CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                        Focusable="False">
            <RepeatButton.Visibility>
              <MultiBinding FallbackValue="Visibility.Collapsed"
                            Converter="{StaticResource MenuScrollingVisibilityConverter}"
                            ConverterParameter="100">
                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                         Path="ComputedVerticalScrollBarVisibility" />
                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                         Path="VerticalOffset" />
                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                         Path="ExtentHeight" />
                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                         Path="ViewportHeight" />
              </MultiBinding>
            </RepeatButton.Visibility>
            <Path Fill="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}"
                  Data="{StaticResource DownArrow}" />
          </RepeatButton>
        </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

注釈

@No__t-0 は、メニューの項目が多すぎて画面に表示されない場合に、メニューに繰り返しボタンを表示するかどうかを指定します。The MenuScrollingVisibilityConverter determines whether a menu should display the repeat buttons when a menu has too many items to fit on the screen at once. 4つのバインドを持つ @no__t 0 でコンバーターを使用します。Use the converter with a MultiBinding that has four bindings. 4つのバインドは、親 ScrollViewer のプロパティにする必要があります。メニュー項目が縦に並べて配置されている場合 (メニューの既定値)、ComputedVerticalScrollBarVisibilityVerticalOffsetExtentHeight、および ViewportHeight にバインドします。The four bindings should be to properties of the parent ScrollViewer: If the menu items are organized vertically (which is the default for menus), bind to ComputedVerticalScrollBarVisibility, VerticalOffset, ExtentHeight, and ViewportHeight. メニュー項目が水平方向に構成されている場合は、ComputedHorizontalScrollBarVisibilityHorizontalOffsetExtentWidth、および ViewportWidth にバインドします。If the menu items are organized horizontally, bind to ComputedHorizontalScrollBarVisibility, HorizontalOffset, ExtentWidth, and ViewportWidth.

@No__t-0 から0または100に設定します。Set MultiBinding.ConverterParameter to 0 or 100. 値はパーセンテージとして扱われ、ScrollViewer が指定した位置にあるときにボタンを非表示にするかどうかを決定します。The value is treated as a percentage and determines whether a button is hidden when the ScrollViewer is at the given location. @No__t-0 が一番上にある場合、ScrollViewer の位置は0% で、上部のボタンは非表示になります。When the ScrollViewer is at the top, the position of the ScrollViewer is 0% and the top button is hidden. @No__t-0 が一番下にある場合、ScrollViewer の位置は100% で、下部のボタンは非表示になります。When the ScrollViewer is at the bottom, the position of the ScrollViewer is 100% and the bottom button is hidden.

コンストラクター

MenuScrollingVisibilityConverter() MenuScrollingVisibilityConverter() MenuScrollingVisibilityConverter() MenuScrollingVisibilityConverter()

MenuScrollingVisibilityConverter クラスの新しいインスタンスを初期化します。Initializes a new instance of the MenuScrollingVisibilityConverter class.

メソッド

Convert(Object[], Type, Object, CultureInfo) Convert(Object[], Type, Object, CultureInfo) Convert(Object[], Type, Object, CultureInfo) Convert(Object[], Type, Object, CultureInfo)

ソースからターゲットに値を移動すると呼び出されます。Called when moving a value from a source to a target.

ConvertBack(Object, Type[], Object, CultureInfo) ConvertBack(Object, Type[], Object, CultureInfo) ConvertBack(Object, Type[], Object, CultureInfo) ConvertBack(Object, Type[], Object, CultureInfo)

サポートされていません。Not supported.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象