Flowdocument 未使用完整宽度/高度

H4m*_*ead 3 wpf resize flowdocument

我有一个 FlowDocument,我想填充窗口的整个宽度和高度。我尝试过使用FlowDocumentPageViewer(没有运气),现在正在使用DocumentPageView. 我仍然无法让它停靠/填满整个空间;它只是坐在中间,以它可以创建的最小尺寸(这有意义吗?)

这是我的代码:

   public DocumentPageView GetPage()
   {
        FlowDocumentPageViewer viewer = new FlowDocumentPageViewer();           
        StreamReader reader = new StreamReader(location);
        string data = reader.ReadToEnd();
        reader.Close();
        string xamlData = HtmlToXamlConverter.ConvertHtmlToXaml(data, true);
        FlowDocument result = (FlowDocument)System.Windows.Markup.XamlReader.Load(new MemoryStream(System.Text.UnicodeEncoding.Default.GetBytes(xamlData)));

        viewer.Document = result;
        viewer.VerticalAlignment = VerticalAlignment.Center;
        viewer.HorizontalAlignment = HorizontalAlignment.Center;

        DocumentPageView pageView = new DocumentPageView();
        pageView.VerticalAlignment = VerticalAlignment.Center;
        pageView.HorizontalAlignment = HorizontalAlignment.Center;
        pageView.Stretch = System.Windows.Media.Stretch.Uniform;
        pageView.PageNumber = 0;
        pageView.StretchDirection = StretchDirection.Both;
        pageView.DocumentPaginator = ((IDocumentPaginatorSource)result).DocumentPaginator;
        return pageView;
   }
Run Code Online (Sandbox Code Playgroud)

请注意,此代码包含我的两种方法的组合,但DocumentPageView当前仅使用。这是从我的 HTML 源创建的 Xaml:

<FlowDocument xml:space="preserve" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Paragraph TextAlignment="center" FontSize="22pt" FontFamily="arial">Test Paragraph</Paragraph>
<Paragraph TextAlignment="center" FontFamily="arial">Test second paragraph</Paragraph>
</FlowDocument>
Run Code Online (Sandbox Code Playgroud)

如果我调整字体大小,则内容只会垂直调整大小(请注意,拉伸方向设置为两个方向)。有任何想法吗?

cr7*_*ph7 6

我遇到了类似的问题FlowDocumentScrollView,但这个解决方案似乎也适用于FlowDocumentPageView

居中是FlowDocument因为它的PagePadding属性设置为auto,auto,auto,auto。设置 PagePadding 可以0修复此行为。

<FlowDocumentScrollViewer VerticalScrollBarVisibility="Auto">
    <FlowDocument PagePadding="0">
    </FlowDocument>
</FlowDocumentScrollViewer>
Run Code Online (Sandbox Code Playgroud)