无法将样式应用于 Silverlight 中的 ScrollViewer



ScrollViewer是与WrapPanel合作的好东西,因为当出现内容溢出时,我们可以使用ScrollViewer来显示隐藏的内容。在我当前的项目中,我使用WrapPanel作为容器,使用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>

我是silverlight的新手,我已经检查了很多代码,但找不到造成这种情况的原因。有人能帮忙吗?

最后我用Silverlight间谍解决了这个问题,你可以在谷歌上搜索它。我用这个工具来反映我的应用程序,并获得了滚动查看器的所有结构,我复制了xaml结构并更改了一些样式,然后将其制作成资源字典,最后一切都对我来说都很好。

最新更新