2014-10-17 6 views
0

ScrollViewer - это хороший материал для сотрудничества с WrapPanel, потому что, когда есть переполнение содержимого, мы можем использовать ScrollViewer для отображения скрытого. В моем текущем проекте я использовал WrapPanel как контейнер, ScrollViewer как компонент для отображения скрытых частей. но теперь у меня возникает проблема при настройке стиля на scrollviewer, проблема в том, что я задал стиль для scrollviewer, он не изменится немного. здесь стиль:Нельзя применять стиль для ScrollViewer в Silverlight

<Style x:Key="CustomScrollViewerStyle" TargetType="ScrollViewer"> 
    <Setter Property="Padding" Value="4"/> 
    <Setter Property="BorderThickness" Value="1"/> 
    <Setter Property="BorderBrush"> 
     <Setter.Value> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFA3AEB9" Offset="0"/> 
       <GradientStop Color="#FF8399A9" Offset="0.375"/> 
       <GradientStop Color="#FF718597" Offset="0.375"/> 
       <GradientStop Color="#FF617584" Offset="1"/> 
      </LinearGradientBrush> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ScrollViewer"> 
       <Border BorderBrush="{TemplateBinding BorderBrush}" 
        BorderThickness="{TemplateBinding BorderThickness}" 
        CornerRadius="2"> 
        <Grid Background="{TemplateBinding Background}"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*"/> 
          <ColumnDefinition Width="Auto"/> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="*"/> 
          <RowDefinition Height="Auto"/> 
         </Grid.RowDefinitions> 
         <ScrollContentPresenter x:Name="ScrollContentPresenter" 
          Cursor="{TemplateBinding Cursor}" 
          ContentTemplate="{TemplateBinding ContentTemplate}" 
          Margin="{TemplateBinding Padding}"/> 
         <Rectangle Grid.Column="1" Fill="#FFE9EEF4" 
          Grid.Row="1"/> 
         <ScrollBar x:Name="VerticalScrollBar" 
          Grid.Column="1" 
          IsTabStop="False" 
          Maximum="{TemplateBinding ScrollableHeight}" 
          Margin="0,-1,-1,-1" 
          Minimum="0" 
          Orientation="Vertical" 
          Grid.Row="0" 
          Visibility="{TemplateBinding 
           ComputedVerticalScrollBarVisibility}" 
          Value="{TemplateBinding VerticalOffset}" 
          ViewportSize="{TemplateBinding ViewportHeight}" 
          Width="18"/> 
         <ScrollBar x:Name="HorizontalScrollBar" 
          Grid.Column="0" 
          Height="18" 
          IsTabStop="False" 
          Maximum="{TemplateBinding ScrollableWidth}" 
          Margin="-1,0,-1,-1" 
          Minimum="0" 
          Orientation="Horizontal" 
          Grid.Row="1" 
          Visibility="{TemplateBinding 
           ComputedHorizontalScrollBarVisibility}" 
          Value="{TemplateBinding HorizontalOffset}" 
          ViewportSize="{TemplateBinding ViewportWidth}"/> 
        </Grid> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Вот это место, я применяю стиль:

<ScrollViewer Grid.Column="0" x:Name="sclViewer" 
    Style="{StaticResource CustomScrollViewerStyle}" 
    VerticalScrollBarVisibility="Auto" BorderThickness="0"> 
    <toolkit:WrapPanel 
     Width="{Binding ElementName=sclViewer, Path=Width, Mode=OneWay}"> 
     <uc:UserCPage x:Name="commonUC1" Title="test" VerticalAlignment="Top"/> 
    </toolkit:WrapPanel> 
</ScrollViewer> 

Я новичок в Silverlight, я проверил мой код много, но не может найти то, что причина вызвана это. Кто-нибудь может помочь?

+1

Есть ли у вас какие-либо ошибки или что-то еще? –

+0

@ChrisW. Нет, ошибок не обнаружено. – CharlieShi

ответ

0

Наконец-то я получил этот вопрос, решив использовать Silverlight spy, вы можете его использовать. Я использовал этот инструмент, чтобы отразить свое приложение и получил всю структуру scrollviewer, я скопировал структуру xaml и изменил некоторые стили, а затем перешел в словарь ресурсов, и, наконец, все в порядке для меня.

Смежные вопросы