隐藏LongListSelector中的滚动条

时间:2013-08-24 03:01:57

标签: windows-phone-8 scrollbar longlistselector

我正在使用LongListSelector,右侧的滚动条增加了一些空白空间,这使设计变得混乱,所以我想隐藏它。我尝试了以下内容:

ScrollBar sb = ((FrameworkElement)VisualTreeHelper.GetChild(FileList, 0))
                           .FindName("VerticalScrollBar") as ScrollBar;
sb.Width = 0;

但是这对于wp8不起作用,我可以使宽度变大但不小。它有一个ScrollViewer.VerticalScrollBarVisibility属性,但将其更改为Hidden或Disabled则不会执行任何操作。

/编辑:

这似乎有效:

var sb = ((FrameworkElement) VisualTreeHelper.GetChild(FileList, 0))
.FindName("VerticalScrollBar") as ScrollBar;
sb.Margin = new Thickness(-10, 0, 0, 0);

但如果有人有更清洁的方法,我仍然希望听到它。

1 个答案:

答案 0 :(得分:6)

您可以通过重新整理整个控件来解决此问题。

添加此资源:

<Style x:Key="LongListSelectorWithNoScrollBarStyle" TargetType="phone:LongListSelector">
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="phone:LongListSelector">
                <Grid Background="{TemplateBinding Background}" d:DesignWidth="480" d:DesignHeight="800">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="ScrollStates">
                            <VisualStateGroup.Transitions>
                                <VisualTransition GeneratedDuration="00:00:00.5"/>
                            </VisualStateGroup.Transitions>
                            <VisualState x:Name="Scrolling" />
                            <VisualState x:Name="NotScrolling"/>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid Margin="{TemplateBinding Padding}">
                        <ViewportControl x:Name="ViewportControl" HorizontalContentAlignment="Stretch" VerticalAlignment="Top"/>
                    </Grid>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

使用资源

<phone:LongListSelector Style="{StaticResource LongListSelectorWithNoScrollBarStyle}">
    ....
</phone:LongListSelector>

瞧。没有滚动条。