MenuScrollingVisibilityConverter Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente un convertisseur de liaison de données pour gérer la visibilité des boutons répétitifs dans les menus de défilement.
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
- Héritage
-
MenuScrollingVisibilityConverter
- Implémente
Exemples
L’exemple suivant utilise le MenuScrollingVisibilityConverterControlTemplate contenu d’un ScrollViewer menu.
Pour obtenir un exemple complet, consultez Style avec l’exemple ControlTemplates.
<!--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>
Remarques
Détermine MenuScrollingVisibilityConverter si un menu doit afficher les boutons de répétition lorsqu’un menu comporte trop d’éléments à l’écran à la fois. Utilisez le convertisseur avec quatre MultiBinding liaisons. Les quatre liaisons doivent être aux propriétés du parent ScrollViewer: si les éléments de menu sont organisés verticalement (qui est la valeur par défaut pour les menus), liez à ComputedVerticalScrollBarVisibility, VerticalOffset, ExtentHeightet ViewportHeight. Si les éléments de menu sont organisés horizontalement, liez à ComputedHorizontalScrollBarVisibility, HorizontalOffset, ExtentWidthet ViewportWidth.
Défini MultiBinding.ConverterParameter sur 0 ou 100. La valeur est traitée comme un pourcentage et détermine si un bouton est masqué lorsque celui-ci ScrollViewer se trouve à l’emplacement donné. Lorsqu’il ScrollViewer se trouve en haut, la position du ScrollViewer% est 0 et le bouton supérieur est masqué. Lorsque la ScrollViewer valeur est en bas, la position de la ScrollViewer valeur est de 100% et le bouton inférieur est masqué.
Constructeurs
| Nom | Description |
|---|---|
| MenuScrollingVisibilityConverter() |
Initialise une nouvelle instance de la classe MenuScrollingVisibilityConverter. |
Méthodes
| Nom | Description |
|---|---|
| Convert(Object[], Type, Object, CultureInfo) |
Appelé lors du déplacement d’une valeur d’une source vers une cible. |
| ConvertBack(Object, Type[], Object, CultureInfo) |
Non pris en charge. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |