WPF NavigationWindow полоса прокрутки - PullRequest
0 голосов
/ 25 августа 2011

Я видел несколько постов, которые спрашивают о полосах прокрутки WPF, и ответ обычно заключается в использовании ScrollViewer. Проблема в том, что я могу заставить его работать только с окном статического размера. При изменении размера окна средство просмотра прокрутки отключается.

Я хотел бы, чтобы появились полосы прокрутки NavigationWindow, какие-либо советы? Я пишу приложение, которое должно работать на различных разрешениях экрана.

1 Ответ

0 голосов
/ 26 августа 2011

Оказывается, что если вы установите размер элемента управления Page, то средство просмотра прокрутки не будет изменять размер окна, так как оно изменяется.Если у вас есть следующий код, ваши прокрутки не будут работать правильно:

<Page x:Class="SomeNamespace.SamplePage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  mc:Ignorable="d" Title="SamplePage" Height="400" Width="400">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <ScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Auto">
        <Border x:Name="BigBadBorder" Height="1000" Width="2000" Background="HotPink" Margin="5">
            <TextBlock Text="Waldo" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Border>
    </ScrollViewer>
</Grid>
</Page>

Если вы просто пропустите свойства высоты и ширины страницы, как указано ниже, все будет работать нормально:

<Page x:Class="SomeNamespace.SamplePage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  mc:Ignorable="d" Title="SamplePage">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <ScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Auto">
        <Border x:Name="BigBadBorder" Height="1000" Width="2000" Background="HotPink" Margin="5">
            <TextBlock Text="Waldo" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Border>
    </ScrollViewer>
</Grid>
</Page>

Простое решение в конце :)

...