問題タブ [flowdocument]
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 - WPF FlowDocument: force calculation of height etc. "off screen"
My target: a DocumentPaginator which takes a FlowDocument with a table, which splits the table to fit the pagesize and repeat the header/footer (special tagged TableRowGroups) on every page.
For splitting the table I have to know the heights of its rows.
While building the FlowDocument-table by code, the height/width of the TableRows are 0 (of course). If I assign this document to a FlowDocumentScrollViewer (PageSize is set), the heights etc. are calculated. Is this possible without using an UI-bound object? Instantiating a FlowDocumentScrollViewer which is not bound to a window doesn't force the pagination/calculation of the heights.
This is how I determine the height of a TableRow (which works perfectly for documents shown by a FlowDocumentScrollViewer):
Edit: I added the FlowDocumentScrollViewer to my example. The call of "Arrange" forces the FlowDocument to calculate its heights etc. I would like to know, what the FlowDocumentScrollViewer is doing with the FlowDocument, so I can do it without the UIElement. Is it possible?
wpf - WPF FlowDocumentの選択したテキストをどのように取得しますか?
.NET3.5を使用しています
FlowDocumentScrollViewer内にFlowDocumentがあります。RichTextBoxを使用していません。FlowDocumentには、テキストの選択やコピー/貼り付けのコンテキストメニューなど、多数の「景品」が付属しています。
FlowDocumentで現在選択されているテキストを確認するにはどうすればよいですか?ApplicationCommands.Copyを使用してテキストをクリップボードに取り込み、そこから読み取ることができると思いますが、必要がなければクリップボードの内容を変更したくありません。
私が見逃しているものがあるに違いありません...
c# - コード ビハインドからフロー ドキュメント内の特定のフラグメントに移動する
片側に多数のコントロールを含む入力フォームとして使用される WPF ページと、反対側にフロー ドキュメント リーダーがあります。
このドキュメント リーダーのコンテンツを、フォームが読み込まれたときに読み込まれるフロー ドキュメントの特定の部分に設定したいと考えています (読み込まれたイベントを介して)。
フラグメントを使用してこれを行う方法を説明する記事を見つけましたが、示されている例は XAML でのみ表現されています。
私の場合、ユーザーがコントロールの 1 つにフォーカスを与えたときに、フロー ドキュメント リーダーのドキュメント プロパティを更新する必要があります (既にイベントを接続しています)。そのため、XAML ではなくコード ビハインドでこれを行う必要があります。
ドキュメント プロパティを次のように設定しようとしました。
ここで、Document は XAML フロー ドキュメントの名前、Control_Sport は移動先のフラグメントの名前です。
ただし、これはエラーになります。ハッシュ記号がそこにあるのは好きではありません。
MSDN を調べてみましたが、その XAML のみです。コードでこれを行う方法はありますか?
どんな助けでも大歓迎です。
フェリックス
MSDN 記事へのリンク: http://msdn.microsoft.com/en-us/library/ms750478.aspx#FragmentNavigation
wpf - WPF の FlowDocumentReader をブックマークする
FlowDocumentReader 内のドキュメントの位置を保存して復元し、ブックマーク機能を作成しようとしています。一般にアクセス可能なシークまたは検索機能が組み込まれていないように見えるため、次のオプションが残されています。
代わりに FlowDocumentPageViewer を使用して、ウィンドウのサイズが変更されるたびにページを保存し、アプリがリロードされるとすぐに復元します。
FlowDocumentReader の Document プロパティ内のすべての要素をループして、画面上のヒット テストに合格した最初の要素を探し、リフレクションを使用して内部検索機能を使用し、後でそのテキストをビューに戻します。
コントロール全体をシリアル化します。
独自のドキュメント ビューアー コントロールを記述します。
No. 1 は面倒です。FlowDocumentReader の 2 ページとスクロール表示オプションを放棄しなければならないからです。また、ユーザーがウィンドウのサイズを変更する前に、保存されたページをシークすることも意味します。これは壊れやすく、ユーザーがセッション間で解像度を切り替えたと言うと、おそらく壊れるでしょう。
No. 2 は派手なハックで、おそらく機能しますが、遅くなり、内部が変更されると完全に壊れてしまいます。
No. 3 は私の最善の策のように見えますが、現在の位置を保存/復元することしかできず、任意のブックマークを設定することはできません。
No. 4 はやりすぎです。これらのコントロールは非常に素晴らしいです。この 1 つの機能だけが必要です...
これについて他に方法はありますか?
wpf - IsReadOnly=false を設定した後でも、カスタム WPF RIchTextBox がユーザー入力を受け付けません。
カスタムの Bindable RichText Box を作成したので、Document プロパティにバインドできます。
ただし、ドキュメントのコンテンツを設定するとすぐに、受け入れる唯一のキーボード入力はバックスペース キー (???) です。他のキーボード入力は認識されません (矢印キーを含む)。
何か案は?
BindableRTB クラスのコードは次のとおりです。
クラス終了
c# - FlowDocument を StackPanel に追加するにはどうすればよいですか?
WPF ドキュメントで書式設定されたテキストを簡単に表示するために、次のクラスを作成しました。
ただし、このソリューションはFlowDocumentを返します。この FlowDocument を現在のアプリケーションに統合するのに問題があり、 TextBlocksを StackPanels と WrapPanels と Borders などに追加するだけでした。
作成した FlowDocument オブジェクトを既存の StackPanels、Borders、および WrapPanels に追加するにはどうすればよいですか?
c# - 複数の FlowDocumentReader を StackPanel に追加するにはどうすればよいですか?
Leom's answer のおかげで、 FlowDocumentReaderでラップすることにより、 FlowDocumentをStackPanelに追加できました。
しかし今、私は2つの問題を抱えています:
- 最初のFlowDocumentReader のみが追加され、残りは無視されるようです
- 取り除けない不要な余白がある
不要なマージンなしで StackPanel に複数の FlowDocumentReaders を追加するにはどうすればよいですか?
代替テキスト http://www.deviantsart.com/upload/1ndiqqe.png
XAML:
コードビハインド:
c# - FlowDocumentハイパーリンクを取得してブラウザーを起動し、WPFアプリのURLに移動するにはどうすればよいですか?
WPFアプリの次のコードは、ハイパーリンクのように見えて動作するハイパーリンクを作成しますが、クリックしても何もしません。
クリックするとデフォルトのブラウザが開き、指定されたURLに移動するようにするには、何を変更する必要がありますか?
代替テキストhttp://www.deviantsart.com/upload/4fbnq2.png
XAML:
コードビハインド:
.net - WPFアプリケーションでFlowDocumentの「印刷プレビュー」を作成するにはどうすればよいですか?
私のさまざまなWPFアプリケーションは、FlowDocumentを表示します。WPF FlowDocumentの印刷の回答で説明されているアプローチを使用して、それらを印刷できます。
次に、「印刷プレビュー」機能を追加したいと思います。通常の場合、ウィンドウに表示されているFlowDocumentを印刷しているので、印刷プレビューは必要ありません。ただし、場合によっては、印刷するFlowDocumentがメモリ内でオンザフライで作成されます。このような場合は、印刷する前に表示したいと思います。
これで、確かに新しいウィンドウをポップしてFlowDocumentを表示できますが、
プレビューは、アプリ内の別のウィンドウではなく、印刷操作の一部であるように感じてもらいたいです。
FlowDocumentScrollViewerに通常のFlowDocumentは必要ありません。「任意のサイズ」ではなく、用紙のサイズ、特定のHxW比に制限し、ページを表示する必要があります。
提案?
標準のウィンドウを使用する必要があります。その場合、FlowDocumentが適切な比率になっていることを確認するにはどうすればよいですか?
Windowsの一部であるPrintDialogUIのスコープ内でプレビューを行うためのより「統合された」方法はありますか?
ありがとう
c# - このフロードキュメント テーブルが常に 2 列を出力するのはなぜですか
実行するタスクのコレクション (To Do リスト) にバインドされている WPF アプリに ListView があります。ユーザーがリストを印刷できるようにして、MSDN ガイドラインに基づいて次のコードを作成できるようにします。(これが私の最初の印刷への進出です)
次のコードで印刷しようとすると、常にページが中央で 2 列に分割されます (それぞれにテーブルの 3 列が含まれます)。さまざまな GridLength 値を試しましたが、成功しませんでした。