Język

MenuScrollingVisibilityConverter Klasa

Definicja

Reprezentuje konwerter powiązania danych do obsługi widoczności przycisków powtarzania w menu przewijania.

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
Dziedziczenie
MenuScrollingVisibilityConverter
Implementuje

Przykłady

W poniższym przykładzie użyto elementu MenuScrollingVisibilityConverter w elem.ControlTemplateScrollViewer

Pełny przykład można znaleźć w temacie Styling with ControlTemplates Sample (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>

Uwagi

Określa MenuScrollingVisibilityConverter , czy menu powinno wyświetlać przyciski powtarzania, gdy menu ma zbyt wiele elementów, aby zmieścić się na ekranie jednocześnie. Użyj konwertera z czterema MultiBinding powiązaniami. Cztery powiązania powinny być właściwościami elementu nadrzędnegoScrollViewer: jeśli elementy menu są zorganizowane w pionie (co jest ustawieniem domyślnym dla menu), powiąż z ComputedVerticalScrollBarVisibilityelementami , , VerticalOffsetExtentHeighti ViewportHeight. Jeśli elementy menu są zorganizowane w poziomie, powiąż je z elementami ComputedHorizontalScrollBarVisibility, HorizontalOffset, ExtentWidthi ViewportWidth.

Ustaw MultiBinding.ConverterParameter wartość 0 lub 100. Wartość jest traktowana jako wartość procentowa i określa, czy przycisk jest ukryty, gdy ScrollViewer znajduje się w danej lokalizacji. Gdy znajduje ScrollViewer się u góry, pozycja ScrollViewer obiektu wynosi 0%, a górny przycisk jest ukryty. Gdy element ScrollViewer znajduje się u dołu, pozycja ScrollViewer wynosi 100%, a dolny przycisk jest ukryty.

Konstruktory

Nazwa Opis
MenuScrollingVisibilityConverter()

Inicjuje nowe wystąpienie klasy MenuScrollingVisibilityConverter.

Metody

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

Wywoływana podczas przenoszenia wartości ze źródła do obiektu docelowego.

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

Niewspierane.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy