MenuScrollingVisibilityConverter Classe

Definizione

Rappresenta un convertitore che esegue l'associazione a dati per gestire la visibilità di pulsanti di ripetizione nei menu di scorrimento.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
Ereditarietà
MenuScrollingVisibilityConverter
Implementazioni

Esempio

Nell'esempio seguente viene usato l'oggetto MenuScrollingVisibilityConverter nell'oggetto ControlTemplate di un oggetto ScrollViewer per un menu.The following example uses the MenuScrollingVisibilityConverter in the ControlTemplate of a ScrollViewer for a menu. Per l'esempio completo, vedere esempio di applicazione di stili con ControlTemplate.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>

Commenti

Il MenuScrollingVisibilityConverter determina se un menu deve visualizzare i pulsanti di ripetizione quando un menu contiene troppi elementi da adattare sullo schermo contemporaneamente.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. Utilizzare il convertitore con un oggetto MultiBinding che dispone di quattro associazioni.Use the converter with a MultiBinding that has four bindings. Le quattro associazioni devono essere le proprietà dell'elemento padre ScrollViewer : se le voci di menu sono organizzate verticalmente (impostazione predefinita per i menu), eseguire l'associazione a ComputedVerticalScrollBarVisibility , VerticalOffset , ExtentHeight e 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. Se le voci di menu sono organizzate orizzontalmente, eseguire l'associazione a ComputedHorizontalScrollBarVisibility , HorizontalOffset , ExtentWidth e ViewportWidth .If the menu items are organized horizontally, bind to ComputedHorizontalScrollBarVisibility, HorizontalOffset, ExtentWidth, and ViewportWidth.

Impostare MultiBinding.ConverterParameter su 0 o 100.Set MultiBinding.ConverterParameter to 0 or 100. Il valore viene considerato come una percentuale e determina se un pulsante è nascosto quando l'oggetto ScrollViewer si trova nella posizione specificata.The value is treated as a percentage and determines whether a button is hidden when the ScrollViewer is at the given location. Quando l'oggetto ScrollViewer si trova nella parte superiore, la posizione di ScrollViewer è 0% e il pulsante superiore è nascosto.When the ScrollViewer is at the top, the position of the ScrollViewer is 0% and the top button is hidden. Quando l'oggetto ScrollViewer si trova nella parte inferiore, la posizione di ScrollViewer è 100% e il pulsante in basso è nascosto.When the ScrollViewer is at the bottom, the position of the ScrollViewer is 100% and the bottom button is hidden.

Costruttori

MenuScrollingVisibilityConverter()

Inizializza una nuova istanza della classe MenuScrollingVisibilityConverter.Initializes a new instance of the MenuScrollingVisibilityConverter class.

Metodi

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

Viene chiamato durante lo spostamento di un valore da un'origine a una destinazione.Called when moving a value from a source to a target.

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

Non supportata.Not supported.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a