UWP ScrollViewer не прокручивается - PullRequest
1 голос
/ 05 апреля 2019

Я пытаюсь продублировать базовый интерфейс MS Word. У меня есть документ, созданный с рамкой вокруг него, чтобы создать эффект теней, и оба они содержатся в ScrollViewer. Проблема в том, что ScrollViewer не позволяет прокручивать. Единственный способ сделать это для прокрутки - установить ZoomMode="Enabled" в ScrollViewer, затем увеличить масштаб, и в этом случае появляются полосы прокрутки, и они прокручиваются, как и ожидалось. Но когда ZoomMode="Disabled" или когда он уменьшен, прокрутки нет, полос прокрутки нет, ничего. Как будто ScrollViewer не существует.

У меня есть догадка, что это вызвано элементами управления компоновкой, дочерним элементом ScrollViewer, но я понятия не имею, в чем причина. Я попытался изменить высоту документа в ScrollViewer, чтобы заставить его прокручиваться, но это также не имеет никакого эффекта.

Может кто-нибудь взглянуть на XAML здесь и посмотреть, может ли он найти, где ошибка, пожалуйста?

MainPage XAML

<Page
    x:Class="Bartleby.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Bartleby"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Loaded="Page_Loaded"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <SplitView IsPaneOpen="True" DisplayMode="Inline" Background="Gray">
            <SplitView.Pane>
                    <StackPanel>
                            <TextBlock Text="Book Title" FontSize="24" FontWeight="Bold" />
                            <ListView>
                                    <ListViewItem Content="Chapter 1" />
                                    <ListViewItem Content="Chapter 2" />
                                    <ListViewItem Content="Chapter 3" />
                                    <ListViewItem Content="Chapter 4" />
                                    <ListViewItem Content="Chapter 5" />
                                    <ListViewItem Content="Chapter 6" />
                                    <Button x:Name="addChapter" Tapped="AddChapter_Tapped"/>
                            </ListView>
                    </StackPanel>
            </SplitView.Pane>
            <Grid HorizontalAlignment="Center">
                    <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="916" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="1152" />
                    </Grid.RowDefinitions>
                    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                            <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <Grid.Resources>
                                    <Style TargetType="AppBarButton">
                                            <Setter Property="IsCompact" Value="True" />
                                    </Style>
                            </Grid.Resources>
                            <!--File Handling-->
                            <AppBarButton x:Name="openFileButton" Grid.Column="0" Icon="OpenFile" ToolTipService.ToolTip="Open file" />
                            <AppBarButton x:Name="saveFileButton" Grid.Column="1" Icon="Save" ToolTipService.ToolTip="Save file" RelativePanel.RightOf="openFileButton" />
                            <AppBarSeparator RelativePanel.RightOf="saveFileButton" Grid.Column="2" />
                            <!--Font Style-->
                            <AppBarButton x:Name="boldFileButton" Grid.Column="3" Icon="Bold" ToolTipService.ToolTip="Bold" RelativePanel.LeftOf="italicFileButton" />
                            <AppBarButton x:Name="italicFileButton" Grid.Column="4" Icon="Italic" ToolTipService.ToolTip="Italic" RelativePanel.LeftOf="underlineFileButton" />
                            <AppBarButton x:Name="underlineFileButton" Grid.Column="5" Icon="Underline" ToolTipService.ToolTip="Underline" RelativePanel.AlignRightWithPanel="True" />
                            <!--Alignment-->
                            <AppBarButton x:Name="alignLeftButton" Grid.Column="6" Icon="AlignLeft" ToolTipService.ToolTip="Align left" RelativePanel.RightOf="saveFileButton" />
                            <AppBarButton x:Name="alignCenterButton" Grid.Column="7" Icon="AlignCenter" ToolTipService.ToolTip="Align center" RelativePanel.RightOf="alignLeftButton" />
                            <AppBarButton x:Name="alignRightButton" Grid.Column="8" Icon="AlignRight" ToolTipService.ToolTip="Align right" RelativePanel.RightOf="alignCenterButton" />
                    </Grid>
                    <ScrollViewer Grid.Row="1" Grid.Column="0" VerticalScrollBarVisibility="Visible" ZoomMode="Disabled" BringIntoViewOnFocusChange="False" Height="600" VerticalAlignment="Top">
                            <Border Margin="40" HorizontalAlignment="Stretch" >
                                    <local:DocumentView x:Name="editor" DocumentHeight="1056" DocumentWidth="816" PlaceholderText="Text Goes In Here" BorderBrush="Black" />
                            </Border>
                    </ScrollViewer>
            </Grid>
    </SplitView>
</Page>

1 Ответ

1 голос
/ 07 апреля 2019

Попробуй это. Это должно работать отлично.

<ScrollViewer Grid.Row="1" 
              Grid.Column="0"
              Height="600"
              HorizontalScrollMode="Disabled"
              VerticalScrollBarVisibility="Auto"
              VerticalAlignment="Top">
    <!--If the elements don't exceed the size of the box, the scrollbar won't be visible-->
    <!--Use your BG color-->
    <Border Background="White"
            HorizontalAlignment="Stretch" >
        <!--Use SPanel or grid or RPanel to include more than one element-->
        <StackPanel Margin="10">
            <TextBlock x:Name="editor"
                       TextWrapping="Wrap"
                       Text="Custom Text more that the screen or the box size"/>
        </StackPanel>
    </Border>
</ScrollViewer>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...