언어

MenuScrollingVisibilityConverter 클래스

정의

스크롤 메뉴에서 반복 단추의 표시 유형을 처리하는 데이터 바인딩 변환기를 나타냅니다.

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
상속
MenuScrollingVisibilityConverter
구현

예제

다음 예제에서는 메뉴의 MenuScrollingVisibilityConverter in을 ControlTemplate 사용합니다ScrollViewer.

전체 샘플은 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>

설명

MenuScrollingVisibilityConverter 메뉴에 한 번에 화면에 맞지 않는 항목이 너무 많은 경우 메뉴에 반복 단추를 표시할지 여부를 결정합니다. 네 개의 바인딩이 있는 MultiBinding 변환기를 사용합니다. 네 개의 바인딩은 부모 ScrollViewer속성에 있어야 합니다. 메뉴 항목이 세로로 구성된 경우(메뉴의 기본값), 바인딩, ComputedVerticalScrollBarVisibility, VerticalOffsetExtentHeightViewportHeight. 메뉴 항목이 가로로 구성된 경우 , ComputedHorizontalScrollBarVisibilityHorizontalOffsetExtentWidthViewportWidth바인딩합니다.

0 또는 100으로 설정합니다 MultiBinding.ConverterParameter . 값은 백분율로 처리되고 지정된 위치에 있을 때 ScrollViewer 단추가 숨겨지는지 여부를 결정합니다. ScrollViewer 맨 위에 있는 경우 위치 ScrollViewer 는 0% 위쪽 단추가 숨겨집니다. 아래쪽에 ScrollViewer 있는 경우 위치 ScrollViewer 는 100% 아래쪽 단추가 숨겨집니다.

생성자

Name Description
MenuScrollingVisibilityConverter()

MenuScrollingVisibilityConverter 클래스의 새 인스턴스를 초기화합니다.

메서드

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

원본에서 대상으로 값을 이동할 때 호출됩니다.

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

지원되지 않습니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상