如何在 ContentDialog 中添加可滚动文本?[WP8.1 Win-RT]

4

当放置在页面上时,此文本可以滚动,但在ContentDialog上却不能。

发生了什么?我该如何使文本可滚动?

        <ScrollViewer Grid.Row="1" VerticalScrollMode="Enabled">
        <TextBlock Name="body" 
                   Style="{StaticResource MessageDialogContentStyle}" 
                   TextWrapping="Wrap" TextTrimming="None">

            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam tempus rutrum vulputate. Suspendisse bibendum elit libero, eget imperdiet orci malesuada quis. Fusce a diam eget sem varius laoreet. Mauris eget bibendum odio. Nam ultricies velit libero, sit amet gravida ante accumsan quis. Suspendisse non velit eu risus blandit aliquam. Maecenas vehicula imperdiet hendrerit.
            <LineBreak/><LineBreak/>
            Sed a elementum mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque congue eros et arcu cursus blandit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec viverra egestas erat, id auctor leo lacinia vel. Praesent consequat consectetur neque, eu auctor urna hendrerit sit amet. Nam vehicula ornare aliquam. Sed sed ligula blandit, ultricies nibh ut, elementum nulla.
            <LineBreak/><LineBreak/>
            Duis iaculis magna mollis imperdiet semper. In facilisis fringilla diam vitae fringilla. In eget laoreet nisi, quis porta sem. Cras sit amet ornare orci. Proin cursus fringilla risus, sit amet commodo libero tincidunt ut. Pellentesque elementum ligula quis neque luctus, ac blandit leo feugiat. Nullam nisi nisi, faucibus hendrerit dapibus et, malesuada sed est. Donec vulputate euismod quam, eget molestie nulla tincidunt eu. Mauris sed quam velit. Nam ullamcorper ante diam, a condimentum orci bibendum sit amet. Ut eu gravida mi. Nam leo lorem, viverra eget suscipit nec, consectetur quis dolor. Fusce tellus tellus, ultricies euismod volutpat vel, suscipit sed nulla. Donec leo lectus, viverra ut tristique ac, fringilla ut ligula. Etiam imperdiet posuere dolor at pretium.
            <LineBreak/><LineBreak/>
            Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin porta commodo porta. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec vitae felis turpis. Proin tempus tristique rutrum. Nam luctus arcu diam. Ut id eros ut magna condimentum lobortis at ac urna. Ut mauris risus, ultrices sed nisi venenatis, venenatis suscipit est. Maecenas porttitor scelerisque nunc vel dignissim. Fusce et eleifend ipsum, eget facilisis risus. In varius ipsum sed purus dictum, id porttitor nibh blandit. Integer enim est, auctor vel magna vel, varius bibendum est. Proin placerat, orci a ornare gravida, metus urna faucibus urna, sit amet sagittis quam leo eu est. Sed ut justo elit.
            <LineBreak/><LineBreak/>
            Aenean ut tempus mi. Pellentesque ultricies gravida pulvinar. Quisque convallis ligula massa, eu varius nibh euismod et. Nulla facilisi. Nulla mattis, nulla porttitor pulvinar varius, mi lacus tincidunt justo, ut convallis arcu tortor sed arcu. Fusce ornare volutpat dolor, euismod ullamcorper ipsum cursus et. Ut ac fringilla nunc.

        </TextBlock>
    </ScrollViewer>

PS:我已经将ContentDialog中的默认StackPanel替换为Grid。

1个回答

1

您的网格将有一个边距,这个 ScrollViewer 将继承它。直接使用它。在 ScrollViewer 中放置一个 StackPanel。

<ScrollViewer Height="800" VerticalScrollBarVisibility="Visible" VerticalScrollMode="Enabled">
    <StackPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
        <TextBlock Name="body" TextWrapping="Wrap" TextTrimming="None">
            <!--Your content here-->
        </TextBlock>
    </StackPanel>
</ScrollViewer>

或者,根据您的方法,这应该可以工作。
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="0">
    <ScrollViewer Grid.Column="1" Height="auto" VerticalScrollBarVisibility="Visible" AllowDrop="False">
        <TextBlock Name="LineDetails" TextWrapping="Wrap" />
    </ScrollViewer>
</Grid>

请注意,真正帮助我的是按照此处描述的跟随场景进行操作:http://stackoverflow.com/questions/19825911/scrollviewer-that-contains-a-grid-snaps-back-to-the-top-when-let-go。确保玩弄`ScrollViewer`和其包含元素的高度。 - Jeroen Vannevel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接