WPF DocumentViewer تجد وظيفة و FixedPage الوثائق
-
06-07-2019 - |
سؤال
.صافي يحتوي على التحكم لطيفة تسمى 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();
}
}
}
نصائح أخرى
لدي مشكلة مع البحث عن النص في richtextbox كانت بطيئة جدا.ما فعلته كان أزمة xaml في كل مرة أردت البحث.لقد تحسنت عدة أوامر من حجم.
انها كبيرة الحل مقرها في جزء من كريس أندرسون ، الكتاب.
هتافات