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 de répétition dans les menus déroulants.
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 MenuScrollingVisibilityConverter ControlTemplate menu 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 a trop d’éléments à ajuster à l’écran à la fois. Utilisez le convertisseur avec quatre MultiBinding liaisons. Les quatre liaisons doivent être à des 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 sur MultiBinding.ConverterParameter 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é. Lorsque la ScrollViewer valeur est située en haut, la position du ScrollViewer bouton supérieur est de 0 % et le bouton supérieur est masqué. Lorsque la ScrollViewer valeur est en bas, la position de la valeur ScrollViewer est de 100 % et le bouton inférieur est masqué.
Constructeurs
MenuScrollingVisibilityConverter() |
Initialise une nouvelle instance de la classe MenuScrollingVisibilityConverter. |
Méthodes
Convert(Object[], Type, Object, CultureInfo) |
Appelée lorsqu'une valeur est déplacée 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() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |