問題タブ [flowdocumentreader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - XmlWriter を使用して名前空間で FlowDocument xaml を書き出す
後で FlowDocument として FlowDocumentReader にロードできる .xaml ファイルに変換する必要があるデータのコレクションがあります。Paragraphs、Runs を直接インスタンス化するのではなく、後でドキュメントを作成するために xaml を生成します。
私が試したこと:
Paragraphs、Runs、InlineUIContainers などの XElements を作成してデータを反復処理し、FlowDocument 構造を適切に構築してから、次のように呼び出します。
消費アプリでは、次のようにします。
しかし、FlowDocument が何であるかがわからないため、読み込みは失敗します。FlowDocument 要素は次のようになります。
(読み込まれたときに FlowDocument が何であるかを明らかにするための名前空間はありません。)
.xaml を手動で編集し、要素を次のように変更すると:
<FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Name="testDoc">
その後、問題なくロードされます。
FlowDocument の XElement を作成するときに、次のことを試みました。
名前空間属性を作成しようとすると、エラーが発生します。
そのxmlnsを要素に完全にチートして詰め込み、次のようなものを呼び出すことができます
しかし、それは汚いと感じるので、単に間違っていると思います。
考え?
アップデート:
これはおそらく問題に対する規範的な解決策ではありませんが、機能します。
ParserContextを XamlReader に 追加することで、FlowDocument xml の読み込みに関する問題を回避することができました。
wpf - メニュー項目を FlowDocumentReader ContextMenu に追加する
FlowDocumentReader の ContextMenu には、Copy と Select All の 2 つのメニュー項目があります。それに追加の MenuItem を追加したいのですが、これを試しました:
さらに、私はこれを試しました:
コンテキストメニューの項目をクリアせずに追加しようとします。これらはどちらも機能しません。
次のように独自のメニューを作成できます。
それが表示されますが、私が欲しいのは、[コピー] と [すべて選択] メニュー項目、および A と B です。
アイデア?
wpf - WPF FlowDocumentScrollViewer または Reader からコピーしたテキストを貼り付けられないのはなぜですか?
前の質問で、ObservableCollection をコントロールにバインドして、すべての文字列を表示し、すべての文字列を選択してコンテンツ コントロールからコピーできるようにする方法を見つけようとしていました。その質問への回答により、次の XAML を使用して、最終的に私が望んでいた外観 (および一見動作) が得られました。(私は FlowDocumentReader と FlowDocumentScrollViewer の両方を試しました - それらは同じように動作します。)
ErrorMessagesは、ObservableCollection<string>を返す ViewModel プロパティです。これはItemsSourceに適切にバインドされ、<Run>要素はコレクション内の各文字列にバインドされます。見栄えがよく、長持ちします。これは非常に近かったので、最後の質問に回答済みのマークを付けましたが、まだ問題が 1 つあります。
右クリックすると、[すべて選択]と[コピー]オプションのメニューが表示されます。Select Allを使用すると、実際にすべてのテキストが強調表示され、Copyを選択してもエラーは発生しませんが、メモ帳 (または Word、TextPad など、またはフォーム上の RTB) に移動してテキストを貼り付けようとしても、何も表示されません。WPF の初心者として、私は何か間違ったことをしているのではないかと疑っていますが、それが何であるかはわかりません。「見栄えの悪い」テキストはありませんか?
[編集 - 2011 年 6 月 22 日] 他の理由で、以下に示すように、ItemsControl 内の ItemTemplate を介して TextBlock を使用するようにコードを変更しましたが、まだコピー アンド ペーストできません。
wpf - WPF バインディング IsAsync の失敗
ほとんどのプロパティを持つオブジェクトを非常に軽量にします - テキストは最大 200 文字です。1 つのプロパティは、大きくなる可能性があり、非同期で取得したい FlowDocument です。「別のスレッドが所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません」というメッセージで Async = True を設定すると失敗します。
Production Get はより複雑ですが、IsAsyc True で単純なハードコードされた FlowDocument を使用しても同じエラーが発生します。
SelectedDoc.DocFlowDocument を呼び出すと、ドキュメントが返されます。IsAsync = False を使用すると、問題なく動作します。問題は静的ソースだと思いますが、明らかに修正方法がわかりません。
GabeLib が起動すると、データベースからアプリケーションとユーザー設定が読み込まれます。
これにアプローチするより良い方法があれば、試してみます。FlowDocument は 3 MB になり、他のすべてのプロパティを合わせて 10K になる可能性があるため、これはパフォーマンスに大きな打撃を与え、最も使用されるボタンは次のオブジェクトです。FlowDocument は SQL の varchar(max) から取得され、改行と強調表示された単語でフォーマットされます。大きいだけでなく、他の物件に比べて割高です。
FlowDocumentReader 自体は、大きなドキュメントで最初のページを高速に取得し、その後ページを約 100/秒でロードするため、非同期サポートがいくつかあるようです。しかし、他のすべてのプロパティが取得された後でも、ページ 1 を取得したいと考えています。
問題は、マーティンが「FlowDocument はディスパッチャー オブジェクトであるため、それを作成したスレッドからのみアクセスできる」と述べたとおりでした。
解決策は、XAML 文字列にシリアル化することでした。
コンバーターで文字列にバインドする
コンバータ
wpf - FlowDocumentScrollViewer と FlowDocumentPageViewer の比較
FlowDocument を表示するには、次の 2 つの方法があります。
FlowDocumentScrollViewer
利点:
- これは、ページに注意を払わずにデータを表示するだけなので、ユーザーはすべてをスクロールするだけです。印刷時にヘッダーとフッターを追加でき、ページはそこで決定されます。
- ウィンドウのサイズを変更すると、コンテンツは 100% のズームのままで、希望どおりに表示されます。
欠点:
- 大量のデータがあるとクラッシュするだけで、すべてのコントロールを一度にレンダリングするように見えます。
FlowDocumentPageViewer
利点:
- 大量のデータを使用しても高速です。
欠点:
- 関係のないページを自動的に判断してくれます。
- ウィンドウのサイズを変更すると、ウィンドウに合わせてコンテンツが縮小されます。これにより、コンテンツがすぐに読めなくなります。これに対する可能な修正は、機能する ScrollViewer でコントロールを囲むことです。しかし、一番下のページのコンテンツを表示するために下にスクロールすると、最後に次のページに移動し、上にスクロールしすぎると前のページに移動するので、非常に迷惑です。
私が最終的に望むのは FlowDocumentScrollViewer ですが、読み込み時間は高速です。
この問題に関するアイデア/ヒントをお持ちの方はいますか? とても有難い!
wpf - WPF XPS リダクション
WPF アプリケーションで XPS ドキュメントを表示するには、DocumentViewer が気に入っています。ただし、XPS ドキュメントも編集する必要があります。XPS を編集するためのスタンドアロン アプリケーション (.exe) を見つけました。私が必要としているのは、XPS の表示と編集のための WPF コントロールです。または編集用の DocumentViewer の拡張機能。編集では、データを非表示にするだけでなく、実際に削除する必要があります (これは訴訟アプリケーション用です)。WPF で XPS を表示および編集する方法を知っている人はいますか?
wpf - ListViewをWPFFlowDocumentReaderにアタッチするにはどうすればよいですか?
私はリストビューを持っていて、このリストビューテーブルをFlowDocumentReaderに添付する必要があります。誰かがこれを行う方法を教えてくれますか。
ありがとう、@nagaraju。
wpf - XAMLのみを使用してツリービューからリソースをflowdocumentreaderにバインドするにはどうすればよいですか?
今回は、ヘルプウィンドウのミニアプリケーション(他のプロジェクトに含めるための画像編集アプリケーション)に取り組んでいます。
2つの列とその間にグリッドスプリッターがあるグリッドがあります。左側にはいくつかのノード(XAMLで設定)を含むツリービューがあり、右側にはフロードキュメントリーダーがあります。
フロードキュメントリーダーに表示したいドキュメントをノードごとに1つずつ保持する、約10のリソース辞書があります。私は実際にこれをバインドする方法がわかりません!誰かが私がこれをどのように行うことができるか考えていますか?これまでの私のコード(追加されたresourcedictionaryは1つだけ)
wpf - FlowDocumentでハイパーリンクを有効にする方法は?
データベースに.htmファイルがあり、FlowDocumentに変換され、FlowDocumentReaderに配置されて表示されます。.htmファイルには、内部にハイパーリンクがあります。1)内部(ドキュメントの他のフラグメントへ)2)外部(ドキュメントの名前でデータベース内の他の.htmドキュメントへ)。変換してFlowDocumentReaderに配置すると、ハイパーリンクは青色で下線が引かれますが、クリックしても反応がありません。上記のハイパーリンクを含む簡略化された.htmコードは次のとおりです。
また、FlowDocumentReaderに配置されたFlowDocumentの生成コードは次のようになります。
FlowDocumentReader内のハイパーリンクを「目覚めさせる」にはどうすればよいですか?どんな助けでも大歓迎です!前もって感謝します!