MenuScrollingVisibilityConverter MenuScrollingVisibilityConverter MenuScrollingVisibilityConverter MenuScrollingVisibilityConverter Class

Definition

Stellt einen Datenbindungskonverter dar, der die Sichtbarkeit von wiederholten Schaltflächen in Menüs mit Bildlauf behandelt.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
Vererbung
MenuScrollingVisibilityConverterMenuScrollingVisibilityConverterMenuScrollingVisibilityConverterMenuScrollingVisibilityConverter
Implementiert

Beispiele

Im folgenden Beispiel wird der MenuScrollingVisibilityConverter in der ControlTemplate eines ScrollViewer -Menüs für ein Menü verwendet.The following example uses the MenuScrollingVisibilityConverter in the ControlTemplate of a ScrollViewer for a menu. Das komplette Beispiel finden Sie unter Beispiel für das Formatieren mit 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>

Hinweise

MenuScrollingVisibilityConverter Bestimmt, ob ein Menü die Wiederholungs Schaltflächen anzeigen soll, wenn ein Menü zu viele Elemente enthält, die auf den Bildschirm gleichzeitig passen.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. Verwenden Sie den Konverter mit MultiBinding einem, der über vier Bindungen verfügt.Use the converter with a MultiBinding that has four bindings. Die vier Bindungen sollten zu den Eigenschaften des übergeordneten ScrollViewerElements werden: Wenn die Menü Elemente vertikal organisiert sind (Dies ist die Standardeinstellung für Menüs), binden ComputedVerticalScrollBarVisibilitySie VerticalOffsetan ExtentHeight,, ViewportHeightund.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. Wenn die Menü Elemente horizontal angeordnet sind, binden Sie ComputedHorizontalScrollBarVisibilityan HorizontalOffset, ExtentWidth, und ViewportWidth.If the menu items are organized horizontally, bind to ComputedHorizontalScrollBarVisibility, HorizontalOffset, ExtentWidth, and ViewportWidth.

Legen MultiBinding.ConverterParameter Sie auf 0 oder 100 fest.Set MultiBinding.ConverterParameter to 0 or 100. Der Wert wird als Prozentsatz behandelt und bestimmt, ob eine Schaltfläche ausgeblendet wird ScrollViewer , wenn sich am angegebenen Speicherort befindet.The value is treated as a percentage and determines whether a button is hidden when the ScrollViewer is at the given location. Wenn sich ScrollViewer der oben befindet, ScrollViewer ist die Position von 0%, und die oberste Schaltfläche ist ausgeblendet.When the ScrollViewer is at the top, the position of the ScrollViewer is 0% and the top button is hidden. Wenn sich am unteren Rand befindet, ScrollViewer ist die Position von 100%, und die untere Schaltfläche ist ausgeblendet. ScrollViewerWhen the ScrollViewer is at the bottom, the position of the ScrollViewer is 100% and the bottom button is hidden.

Konstruktoren

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

Initialisiert eine neue Instanz der MenuScrollingVisibilityConverter-Klasse.Initializes a new instance of the MenuScrollingVisibilityConverter class.

Methoden

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

Wird aufgerufen, wenn ein Wert von einer Quelle zu einem Ziel verschoben wird.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)

Wird nicht unterstützt.Not supported.

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

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

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

Fungiert als Standardhashfunktion.Serves as the default hash function.

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

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

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

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

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

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für: