MenuScrollingVisibilityConverter Klasse

Definition

Stellt einen Datenbindungskonverter dar, um die Sichtbarkeit von Wiederholten Schaltflächen in Bildlaufmenüs zu behandeln.

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
Vererbung
MenuScrollingVisibilityConverter
Implementiert

Beispiele

Im folgenden Beispiel wird das MenuScrollingVisibilityConverter in einem ControlTemplate Menü verwendet ScrollViewer .

Ein vollständiges Beispiel finden Sie unter "Formatieren mit 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>

Hinweise

Dies MenuScrollingVisibilityConverter bestimmt, ob ein Menü die Wiederholungsschaltflächen anzeigen soll, wenn ein Menü zu viele Elemente enthält, die gleichzeitig auf den Bildschirm passen. Verwenden Sie den Konverter mit vier MultiBinding Bindungen. Die vier Bindungen sollten eigenschaften des übergeordneten ScrollViewerElements sein: Wenn die Menüelemente vertikal angeordnet sind (dies ist die Standardeinstellung für Menüs), binden Sie an ComputedVerticalScrollBarVisibility, VerticalOffset, , ExtentHeightund ViewportHeight. Wenn die Menüelemente horizontal angeordnet sind, binden Sie sie an ComputedHorizontalScrollBarVisibility, HorizontalOffset, , und ExtentWidthViewportWidth.

Auf 0 oder 100 festgelegt MultiBinding.ConverterParameter . Der Wert wird als Prozentsatz behandelt und bestimmt, ob eine Schaltfläche ausgeblendet wird, wenn sich die ScrollViewer Schaltfläche an der angegebenen Position befindet. Wenn sich der ScrollViewer Bereich oben befindet, ist die Position der ScrollViewer 0% und die obere Schaltfläche ausgeblendet. Wenn sich die ScrollViewer Position unten befindet, ist die Position der ScrollViewer 100% und die untere Schaltfläche ausgeblendet.

Konstruktoren

Name Beschreibung
MenuScrollingVisibilityConverter()

Initialisiert eine neue Instanz der MenuScrollingVisibilityConverter-Klasse.

Methoden

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

Wird aufgerufen, wenn ein Wert von einer Quelle zu einem Ziel verschoben wird.

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

Wird nicht unterstützt.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: