MenuScrollingVisibilityConverter Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje převaděč datové vazby pro zpracování viditelnosti opakujících se tlačítek v posouvání nabídek.
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
- Dědičnost
-
MenuScrollingVisibilityConverter
- Implementuje
Příklady
Následující příklad používá MenuScrollingVisibilityConverter v nabídce v nabídce.ControlTemplate ScrollViewer
Kompletní ukázku najdete v tématu 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>
Poznámky
Určuje MenuScrollingVisibilityConverter , zda má nabídka zobrazovat tlačítka opakování, pokud má nabídka příliš mnoho položek, které se mají na obrazovku najednou vejít. Použijte převaděč se čtyřmi vazbami MultiBinding . Čtyři vazby by měly být vlastnosti nadřazeného ScrollViewerobjektu : Pokud jsou položky nabídky uspořádané svisle (což je výchozí hodnota pro nabídky), vazba na ComputedVerticalScrollBarVisibility, , VerticalOffsetExtentHeighta .ViewportHeight Pokud jsou položky nabídky uspořádané vodorovně, svázat s ComputedHorizontalScrollBarVisibility, , ExtentWidthHorizontalOffseta ViewportWidth.
Nastavte MultiBinding.ConverterParameter na hodnotu 0 nebo 100. Hodnota se považuje za procento a určuje, jestli je tlačítko skryté, pokud ScrollViewer je na daném místě. ScrollViewer Když je nahoře, pozice ScrollViewer je 0 % a horní tlačítko je skryté. ScrollViewer Když je v dolní části, pozice ScrollViewer je 100 % a dolní tlačítko je skryté.
Konstruktory
MenuScrollingVisibilityConverter() |
Inicializuje novou instanci MenuScrollingVisibilityConverter třídy. |
Metody
Convert(Object[], Type, Object, CultureInfo) |
Volá se při přesouvání hodnoty ze zdroje do cíle. |
ConvertBack(Object, Type[], Object, CultureInfo) |
Nepodporováno |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |