2014-10-17 3 views
0

ScrollViewer는 콘텐츠 오버플로가있을 때 ScrollViewer를 사용하여 숨겨진 뷰를 표시 할 수 있기 때문에 WrapPanel과 협조하기에 좋은 재료입니다. 현재 프로젝트에서 컨테이너로 WrapPanel, 숨겨진 부분을 표시하는 구성 요소로 ScrollViewer를 사용했습니다. 하지만 이제는 scrollviewer에 스타일을 설정할 때 문제가 발생합니다. 그러나 문제는 scrollviewer에 스타일을 설정했지만 약간 변경되지는 않습니다. 여기Silverlight의 ScrollViewer에 스타일을 적용 할 수 없습니다.

<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> 

을, 나는 내 코드를 많이 확인했지만 이유는 원인을 찾을 수 없습니다 이. 누구든지 도울 수 있니?

+1

어떤 종류의 오류가 있습니까? –

+0

@ChrisW. 아니요, 오류가 없습니다. – CharlieShi

답변

0

마지막으로이 질문을 Silverlight 스파이를 사용하여 해결했습니다. Google을 사용할 수 있습니다. 이 도구를 사용하여 내 응용 프로그램을 반영하고 scrollviewer의 모든 구조를 얻었습니다. xaml 구조체를 복사하고 일부 스타일을 변경 한 다음 리소스 사전으로 만들었습니다. 결국 모두 괜찮습니다.

관련 문제