MenuScrollingVisibilityConverter Třída

Definice

Představuje převaděč datových vazeb pro zpracování viditelnosti tlačítek opakování v nabídkách posouvání.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
Dědičnost
MenuScrollingVisibilityConverter
Implementuje

Příklady

V následujícím příkladu se používá MenuScrollingVisibilityConverter v ControlTemplate ScrollViewer nabídce pro.The following example uses the MenuScrollingVisibilityConverter in the ControlTemplate of a ScrollViewer for a menu. Úplný příklad naleznete v tématu stylování with ControlTemplates Sample.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>

Poznámky

MenuScrollingVisibilityConverterUrčuje, zda má nabídka Zobrazit tlačítka pro opakování v případě, že nabídka má příliš mnoho položek, aby se na obrazovku vešly najednou.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. Použijte převaděč se MultiBinding čtyřmi vazbami.Use the converter with a MultiBinding that has four bindings. Čtyři vazby by měly být vlastnosti nadřazeného objektu ScrollViewer : Pokud jsou položky nabídky uspořádány svisle (což je výchozí nastavení pro nabídky), vytvořte vazbu na ComputedVerticalScrollBarVisibility ,, VerticalOffset ExtentHeight a 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. Pokud jsou položky nabídky uspořádány vodorovně, připojte se k ComputedHorizontalScrollBarVisibility ,, HorizontalOffset ExtentWidth a ViewportWidth .If the menu items are organized horizontally, bind to ComputedHorizontalScrollBarVisibility, HorizontalOffset, ExtentWidth, and ViewportWidth.

Nastavte MultiBinding.ConverterParameter na 0 nebo 100.Set MultiBinding.ConverterParameter to 0 or 100. Hodnota se považuje za procento a určí, jestli je tlačítko skryté, když ScrollViewer je v daném umístění.The value is treated as a percentage and determines whether a button is hidden when the ScrollViewer is at the given location. Pokud ScrollViewer je v horní části, pozice ScrollViewer je 0% a horní tlačítko je skryto.When the ScrollViewer is at the top, the position of the ScrollViewer is 0% and the top button is hidden. Pokud ScrollViewer je v dolní části, pozice ScrollViewer je 100% a dolní tlačítko dole je skryto.When the ScrollViewer is at the bottom, the position of the ScrollViewer is 100% and the bottom button is hidden.

Konstruktory

MenuScrollingVisibilityConverter()

Inicializuje novou instanci MenuScrollingVisibilityConverter třídy.Initializes a new instance of the MenuScrollingVisibilityConverter class.

Metody

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

Volá se při přesunutí hodnoty ze zdroje do cíle.Called when moving a value from a source to a target.

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

NepodporovánoNot supported.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Platí pro