War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern

MenuScrollingVisibilityConverter-Klasse

Aktualisiert: November 2007

Stellt einen Datenbindungskonverter dar, der die Sichtbarkeit von wiederholten Schaltflächen in Menüs mit Bildlauf behandelt.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/xaml/presentation

public sealed class MenuScrollingVisibilityConverter : IMultiValueConverter
public final class MenuScrollingVisibilityConverter implements IMultiValueConverter
public final class MenuScrollingVisibilityConverter implements IMultiValueConverter
<MenuScrollingVisibilityConverter .../>

Der MenuScrollingVisibilityConverter bestimmt, ob die wiederholten Schaltflächen in einem Menü angezeigt werden sollen, wenn diese aufgrund zu vieler enthaltener Elemente nicht alle gleichzeitig angezeigt werden können. Verwenden Sie den Konverter mit einer MultiBinding, die vier Bindungen aufweist. Die vier Bindungen müssen Eigenschaften des übergeordneten ScrollViewer sein: Wenn die Menüelemente vertikal angeordnet sind (Standardeinstellung für Menüs), führen Sie eine Bindung an ComputedVerticalScrollBarVisibility, VerticalOffset, ExtentHeight und ViewportHeight aus. Wenn die Menüelemente horizontal angeordnet sind, führen Sie eine Bindung an ComputedHorizontalScrollBarVisibility, HorizontalOffset, ExtentWidth und ViewportWidth aus.

Legen Sie MultiBinding.ConverterParameter auf 0 oder 100 fest. Der Wert wird als Prozentsatz behandelt und gibt an, ob eine Schaltfläche verborgen ist, wenn sich der ScrollViewer an der betreffenden Position befindet. Wenn sich der ScrollViewer an der obersten Position befindet, ist die Position des ScrollViewer 0 %, und die oberste Schaltfläche ist ausgeblendet. Wenn sich der ScrollViewer an der untersten Position befindet, ist die Position des ScrollViewer 100 %, und die unterste Schaltfläche ist ausgeblendet.

Im folgenden Beispiel wird der MenuScrollingVisibilityConverter im ControlTemplate eines ScrollViewer für ein Menü verwendet. Das vollständige Beispiel finden Sie unter Beispiel zum Formatieren mit ControlTemplates.

<!--ScrollViewer for a MenuItem-->
<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>


System.Object
  System.Windows.Controls.MenuScrollingVisibilityConverter

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft