سؤال

.صافي يحتوي على التحكم لطيفة تسمى DocumentViewer.كما يقدم subcontrol إيجاد النص في تحميل الوثيقة (هذا على الأقل ما يفترض القيام به).

عند إدراج FixedPage's كائنات الوثيقة مصدر DocumentViewer, إيجاد وظائف لا تجد أي شيء.ولا حتى واحد من الحروف.لم أحاول FlowDocument's حتى الآن ، كما وثائق DocumentViewer ليست مفيدة والموارد على شبكة الإنترنت ليست في الواقع القائم ، وأنا الآن أريد أن أسأل ستاكوفيرفلوو المجتمع:

ما أنها لا تحتاج إلى الحصول على إيجاد وظيفة WPF DocumentViewer العمل مع FixedPage الوثائق ؟

[راجع للشغل, أنا لا تستخدم مخصص ControlTemplates بالنسبة DocumentViewer]

هل كانت مفيدة؟

المحلول

كان لدي نفس المشكلة مع FixedDocuments.إذا يمكنك تحويل الخاص بك FixedDocument إلى مستند XPS ثم فإنه يعمل بشكل جيد.

المثال إنشاء مستند XPS في الذاكرة من FixedDocument ثم عرض DocumentViewer.

// Add to xaml: <DocumentViewer x:Name="documentViewer" />
// Add project references to "ReachFramework" and "System.Printing"
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.IO;
using System.IO.Packaging;
using System.Windows.Xps.Packaging;

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            // Set up demo FixedDocument containing text to be searched
            var fixedDocument = new FixedDocument();
            var pageContent = new PageContent();
            var fixedPage = new FixedPage();
            fixedPage.Children.Add(new TextBlock() { Text = "Demo document text." });
            pageContent.Child = fixedPage;
            fixedDocument.Pages.Add(pageContent);

            // Set up fresh XpsDocument
            var stream = new MemoryStream();
            var uri = new Uri("pack://document.xps");
            var package = Package.Open(stream, FileMode.Create, FileAccess.ReadWrite);
            PackageStore.AddPackage(uri, package);
            var xpsDoc = new XpsDocument(package, CompressionOption.NotCompressed, uri.AbsoluteUri);

            // Write FixedDocument to the XpsDocument
            var docWriter = XpsDocument.CreateXpsDocumentWriter(xpsDoc);
            docWriter.Write(fixedDocument);

            // Display XpsDocument in DocumentViewer
            documentViewer.Document = xpsDoc.GetFixedDocumentSequence();
        }
    }
}

enter image description here

نصائح أخرى

لدي مشكلة مع البحث عن النص في richtextbox كانت بطيئة جدا.ما فعلته كان أزمة xaml في كل مرة أردت البحث.لقد تحسنت عدة أوامر من حجم.

انها كبيرة الحل مقرها في جزء من كريس أندرسون ، الكتاب.

هتافات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top