質問

.Netには、 という優れたコントロールが含まれています。 DocumentViewer 。また、ロードされたドキュメント内のテキストを検索するためのサブコントロールも提供します(少なくとも、それが実行されるはずです)。

FixedPage を挿入する場合 DocumentViewer のドキュメントソースとしてののオブジェクト、find-functionalityは何も検出しません。一文字でもない。 FlowDocument を試していませんはまだです。 DocumentViewer のドキュメントは有用ではなく、ネット上のリソースは実際には存在しないため、stackoverflowコミュニティに問い合わせたいと思います。

WPF DocumentViewer のFind-Functionを FixedPage ドキュメントで使用するには何が必要ですか?

[ところで、私は DocumentViewer ]にカスタム ControlTemplates を使用しません

役に立ちましたか?

解決

FixedDocumentsでも同じ問題が発生しました。 FixedDocumentをXPSドキュメントに変換すると、正常に機能します。

FixedDocumentからメモリにXPSドキュメントを作成し、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をクランチすることでした。数桁改善しました。

これは、クリスアンダーソンのの一部に基づいた大きな回避策です。 。

乾杯

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top