Taal

MenuScrollingVisibilityConverter Klas

Definitie

Vertegenwoordigt een conversieprogramma voor gegevensbinding om de zichtbaarheid van herhalende knoppen in schuifmenu's te verwerken.

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
Overname
MenuScrollingVisibilityConverter
Implementeringen

Voorbeelden

In het volgende voorbeeld wordt de MenuScrollingVisibilityConverter in de ControlTemplate van een ScrollViewer voor een menu gebruikt.

Zie Styling met ControlTemplates Sample voor een volledig voorbeeld.

<!--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>

Opmerkingen

Hiermee MenuScrollingVisibilityConverter bepaalt u of in een menu de herhalende knoppen moeten worden weergegeven wanneer een menu te veel items bevat die in één keer op het scherm passen. Gebruik het conversieprogramma met een MultiBinding binding met vier bindingen. De vier bindingen moeten de eigenschappen van het bovenliggende ScrollVieweritem zijn: als de menu-items verticaal zijn geordend (dit is de standaardinstelling voor menu's), binden aan ComputedVerticalScrollBarVisibility, VerticalOffset, en ExtentHeightViewportHeight. Als de menu-items horizontaal zijn geordend, bindt u aan ComputedHorizontalScrollBarVisibility, HorizontalOffseten ExtentWidthViewportWidth.

Ingesteld MultiBinding.ConverterParameter op 0 of 100. De waarde wordt behandeld als een percentage en bepaalt of een knop wordt verborgen wanneer de ScrollViewer waarde zich op de opgegeven locatie bevindt. Wanneer de ScrollViewer bovenzijde zich bevindt, is de positie van de ScrollViewer 0% en is de bovenste knop verborgen. Wanneer de ScrollViewer onderkant is, is de positie van de ScrollViewer 100% en is de onderste knop verborgen.

Constructors

Name Description
MenuScrollingVisibilityConverter()

Initialiseert een nieuw exemplaar van de MenuScrollingVisibilityConverter klasse.

Methoden

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

Aangeroepen bij het verplaatsen van een waarde van een bron naar een doel.

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

Wordt niet ondersteund.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op