У меня есть ScrollViewer на моей странице Windows Phone. Я хочу показать эксплицитно, что есть возможность прокрутки. По умолчанию сам элемент управления не показывает ничего, что может дать пользователю указание, что пространство прокручивается. Возможно ли, например, всегда показывать полосу прокрутки с правой стороны? Опять же, по умолчанию он отображается только тогда, когда пользователь хочет и пытается выполнить прокрутку.ScrollViewer Border (Windows Phone 7)
ответ
<ScrollViewer VerticalScrollBarVisibility="Visible">
не работает в телефоне Windows. Я думаю, вы можете изменить ControTemplate для ScrollViewer и сделать видимость полосы прокрутки.
Отредактировано:
Есть пример, как вы можете изменить шаблон управления для ScrolViewer. Я получил его от
MSDN<Style x:Key="LeftScrollViewer" TargetType="ScrollViewer">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ScrollViewer">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ScrollContentPresenter Grid.Column="1"/>
<ScrollBar Name="PART_VerticalScrollBar"
Value="{TemplateBinding VerticalOffset}"
Maximum="{TemplateBinding ScrollableHeight}"
ViewportSize="{TemplateBinding ViewportHeight}"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
<ScrollBar 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>
применить этот стиль ScrolViewer
<ScrollViewer Grid.Column="1" Style="{StaticResource LeftScrollViewer}">
этот пример не будет работать в Windows Phone, потому что это ScrollViewer ControlTemplate из descktop МОФ. Но вы можете использовать Expression Blend и получить Windows Phone ScrolViewer ControlTemplate и изменить что-то вроде
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
на Visibility="Visible"
Вы можете заменить шаблон ScrollViewer по умолчанию с той, которая всегда показывает полосу прокрутки. Обратите внимание, что это не соответствует принципам дизайна телефона для Windows, и вы должны тщательно подумать, прежде чем выбирать всегда отображение полосы прокрутки.
<phone:PhoneApplicationPage.Resources>
<Style x:Key="ScrollViewerStyle1" TargetType="ScrollViewer">
<Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ScrollViewer">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="ScrollStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="00:00:00.5"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Scrolling">
<Storyboard>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="VerticalScrollBar"/>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="HorizontalScrollBar"/>
</Storyboard>
</VisualState>
<VisualState x:Name="NotScrolling"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid Margin="{TemplateBinding Padding}">
<ScrollContentPresenter x:Name="ScrollContentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}"/>
<ScrollBar x:Name="VerticalScrollBar" HorizontalAlignment="Right" Height="Auto" IsHitTestVisible="False" IsTabStop="False" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Opacity="1" Orientation="Vertical" Visibility="Visible" Value="{TemplateBinding VerticalOffset}" ViewportSize="{TemplateBinding ViewportHeight}" VerticalAlignment="Stretch" Width="5"/>
<ScrollBar x:Name="HorizontalScrollBar" HorizontalAlignment="Stretch" Height="5" IsHitTestVisible="False" IsTabStop="False" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Opacity="0" Orientation="Horizontal" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{TemplateBinding HorizontalOffset}" ViewportSize="{TemplateBinding ViewportWidth}" VerticalAlignment="Bottom" Width="Auto"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</phone:PhoneApplicationPage.Resources>
<ScrollViewer Style="{StaticResource ScrollViewerStyle1}">
- 1. Canvas border C# (Windows Phone 7)
- 2. Windows Phone 8.1 Scrollviewer
- 3. Windows Phone 8 ScrollViewer
- 4. windows phone scrollviewer jump effect
- 5. horizontal ScrollView Windows Phone 7
- 6. Просмотреть скрытую часть scrollviewer в Windows Phone 7
- 7. Windows Phone DoubleAnimation for Border
- 8. ScrollViewer в телефоне Windows 7
- 9. Windows Phone Mango vs Windows Phone 7
- 10. Получение Windows Phone 7 WebBrowser Component VerticalOffset
- 11. Граница для Windows Phone 7
- 12. windows phone 8 scrollviewer скрывает мою кнопку
- 13. Использование памяти ScrollViewer в Windows Phone 8
- 14. сетки внутри ScrollViewer в Windows Phone 7.1
- 15. Windows Phone 8.1 ScrollViewer отключает эффект сверхсброса
- 16. Отключить переполнение scrollviewer в Windows Phone 8.1
- 17. Прокрутка события для Windows Phone ScrollViewer
- 18. Windows Phone 7 ListBox невыполнима?
- 19. Windows Phone 7 Crash
- 20. Windows Phone 7 Образцы
- 21. Windows Phone 7 States
- 22. Windows Phone 7 - Деактивация?
- 23. Windows Phone 7 SDK
- 24. Windows phone 7 app
- 25. Windows Phone 7 анимация
- 26. Windows Phone 7 Разработка
- 27. windows phone 7 database
- 28. Windows phone 7 Реклама
- 29. Разработка Windows 7 phone
- 30. Windows Phone 7 sniffer