Stili e modelli di ScrollViewerScrollViewer Styles and Templates

In questo argomento vengono descritti gli stili e modelli per il ScrollViewer controllo.This topic describes the styles and templates for the ScrollViewer control. È possibile modificare il valore predefinito ControlTemplate per fornire al controllo un aspetto univoco.You can modify the default ControlTemplate to give the control a unique appearance. Per altre informazioni, vedere Personalizzazione dell'aspetto di un controllo esistente mediante la creazione di un oggetto ControlTemplate.For more information, see Customizing the Appearance of an Existing Control by Creating a ControlTemplate.

Parti del controllo ScrollViewerScrollViewer Parts

La tabella seguente elenca le parti denominate la ScrollViewer controllo.The following table lists the named parts for the ScrollViewer control.

PartePart TipoType DescrizioneDescription
PART_ScrollContentPresenterPART_ScrollContentPresenter ScrollContentPresenter Il segnaposto di contenuto di ScrollViewer.The placeholder for content in the ScrollViewer.
PART_HorizontalScrollBarPART_HorizontalScrollBar ScrollBar Il ScrollBar consente di scorrere orizzontalmente il contenuto.The ScrollBar used to scroll the content horizontally.
PART_VerticalScrollBarPART_VerticalScrollBar ScrollBar Il ScrollBar consente di scorrere verticalmente il contenuto.The ScrollBar used to scroll the content vertically.

Stati del controllo ScrollViewerScrollViewer States

Nella tabella seguente sono elencati gli stati visivi per la ScrollViewer controllo.The following table lists the visual states for the ScrollViewer control.

Nome VisualStateVisualState Name Nome VisualStateGroupVisualStateGroup Name DescrizioneDescription
ValidoValid ValidationStatesValidationStates Il controllo Usa il Validation classe e HasError proprietà associata è false.The control uses the Validation class and the HasError attached property is false.
InvalidFocusedInvalidFocused ValidationStatesValidationStates Il HasError proprietà associata è true ha il controllo ha lo stato attivo.The HasError attached property is true has the control has focus.
InvalidUnfocusedInvalidUnfocused ValidationStatesValidationStates Il HasError proprietà associata è true ha il controllo non è attivo.The HasError attached property is true has the control does not have focus.

Esempio di ControlTemplate del controllo ScrollViewerScrollViewer ControlTemplate Example

Nell'esempio seguente viene illustrato come definire un ControlTemplate per il ScrollViewer controllo.The following example shows how to define a ControlTemplate for the ScrollViewer control.

<Style x:Key="LeftScrollViewer"
       TargetType="{x:Type ScrollViewer}">
  <Setter Property="OverridesDefaultStyle"
          Value="True" />
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type ScrollViewer}">
        <Grid>
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition />
          </Grid.ColumnDefinitions>
          <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition Height="Auto" />
          </Grid.RowDefinitions>
          <Border Grid.Column="1"
                  BorderThickness="0,1,1,1">
            <Border.BorderBrush>
              <SolidColorBrush Color="{DynamicResource BorderMediumColor}" />
            </Border.BorderBrush>
            <ScrollContentPresenter />
          </Border>
          <ScrollBar x:Name="PART_VerticalScrollBar"
                     Value="{TemplateBinding VerticalOffset}"
                     Maximum="{TemplateBinding ScrollableHeight}"
                     ViewportSize="{TemplateBinding ViewportHeight}"
                     Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
          <ScrollBar x:Name="PART_HorizontalScrollBar"
                     Orientation="Horizontal"
                     Grid.Row="1"
                     Grid.Column="1"
                     Value="{TemplateBinding HorizontalOffset}"
                     Maximum="{TemplateBinding ScrollableWidth}"
                     ViewportSize="{TemplateBinding ViewportWidth}"
                     Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>

        </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

L'esempio precedente usa una o più delle seguenti risorse.The preceding example uses one or more of the following resources.

<!--Control colors.-->
<Color x:Key="WindowColor">#FFE8EDF9</Color>
<Color x:Key="ContentAreaColorLight">#FFC5CBF9</Color>
<Color x:Key="ContentAreaColorDark">#FF7381F9</Color>

<Color x:Key="DisabledControlLightColor">#FFE8EDF9</Color>
<Color x:Key="DisabledControlDarkColor">#FFC5CBF9</Color>
<Color x:Key="DisabledForegroundColor">#FF888888</Color>

<Color x:Key="SelectedBackgroundColor">#FFC5CBF9</Color>
<Color x:Key="SelectedUnfocusedColor">#FFDDDDDD</Color>

<Color x:Key="ControlLightColor">White</Color>
<Color x:Key="ControlMediumColor">#FF7381F9</Color>
<Color x:Key="ControlDarkColor">#FF211AA9</Color>

<Color x:Key="ControlMouseOverColor">#FF3843C4</Color>
<Color x:Key="ControlPressedColor">#FF211AA9</Color>


<Color x:Key="GlyphColor">#FF444444</Color>
<Color x:Key="GlyphMouseOver">sc#1, 0.004391443, 0.002428215, 0.242281124</Color>

<!--Border colors-->
<Color x:Key="BorderLightColor">#FFCCCCCC</Color>
<Color x:Key="BorderMediumColor">#FF888888</Color>
<Color x:Key="BorderDarkColor">#FF444444</Color>

<Color x:Key="PressedBorderLightColor">#FF888888</Color>
<Color x:Key="PressedBorderDarkColor">#FF444444</Color>

<Color x:Key="DisabledBorderLightColor">#FFAAAAAA</Color>
<Color x:Key="DisabledBorderDarkColor">#FF888888</Color>

<Color x:Key="DefaultBorderBrushDarkColor">Black</Color>

<!--Control-specific resources.-->
<Color x:Key="HeaderTopColor">#FFC5CBF9</Color>
<Color x:Key="DatagridCurrentCellBorderColor">Black</Color>
<Color x:Key="SliderTrackDarkColor">#FFC5CBF9</Color>

<Color x:Key="NavButtonFrameColor">#FF3843C4</Color>

<LinearGradientBrush x:Key="MenuPopupBrush"
                     EndPoint="0.5,1"
                     StartPoint="0.5,0">
  <GradientStop Color="{DynamicResource ControlLightColor}"
                Offset="0" />
  <GradientStop Color="{DynamicResource ControlMediumColor}"
                Offset="0.5" />
  <GradientStop Color="{DynamicResource ControlLightColor}"
                Offset="1" />
</LinearGradientBrush>

<LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill"
                     StartPoint="0,0"
                     EndPoint="1,0">
  <LinearGradientBrush.GradientStops>
    <GradientStopCollection>
      <GradientStop Color="#000000FF"
                    Offset="0" />
      <GradientStop Color="#600000FF"
                    Offset="0.4" />
      <GradientStop Color="#600000FF"
                    Offset="0.6" />
      <GradientStop Color="#000000FF"
                    Offset="1" />
    </GradientStopCollection>
  </LinearGradientBrush.GradientStops>
</LinearGradientBrush>

Per l'esempio completo, vedere Esempio di applicazione di stili con ControlTemplates.For the complete sample, see Styling with ControlTemplates Sample.

Vedere ancheSee Also

Style
ControlTemplate
Stili e modelli di ControlControl Styles and Templates
Personalizzazione dei controlliControl Customization
Applicazione di stili e modelliStyling and Templating
Personalizzazione dell'aspetto di un controllo esistente mediante la creazione di un oggetto ControlTemplateCustomizing the Appearance of an Existing Control by Creating a ControlTemplate