問題タブ [flowdocumentscrollviewer]
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 - RichTextBox と FlowDocumentScrollViewer - なぜそんなに違うのですか?
同じ Paragraph 要素と Run 要素を RichTextBox と FlowDocumentScrollViewer の両方に渡す非常に単純な xaml ファイルがあります。両方とも根本的に異なって見えます - これは私が期待していたものではありません.
FlowDocument またはコンテナのいずれかをスタイルして同じように見えることは理解していますが、両方が同じ「デフォルト」設定を継承することを期待していました。
これが私のコードです:
私の質問
RichTextBox と FlowDocumentScrollViewer の両方が同じ方法で FlowDocument を表示するようにする方法はありますか? 理想的には、マージンやフォントなどをどちらかに「ハードコード」する必要なしに、それらの違いを見分けることができないようにすることです。
上記の例で、Textblock を RichTextBlock と同じように表示するにはマージンが必要であることがわかりますが、フォントやカルチャの設定によっては間違いなくこのようなことをする必要はありません。これをすべてひどく壊します。
c# - 位置ごとに表示されるコントロールを取得する
FlowDocument
内部には多くのコンテンツがあります。現在表示領域にあるコントロールを取得する必要があります。
次のコードで、現在のスクロール位置を取得できました。
可視領域内にコントロールを配置するにはどうすればよいですか?
xaml - 動的コンテンツを含む FlowDocument (BlockUIContainer)
メモ帳に簡単な xaml ファイルを書きます。
<FlowDocument AllowDrop="True"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"><Paragraph />
<BlockUIContainer><Button Tag="another.xaml">Next...</Button>
</BlockUIContainer></FlowDocument>
このファイルには、内部に Button を含む BlockUIContainer が含まれています。ボタンには、別の xaml ファイルへの参照を含むタグ プロパティもあります。xaml ファイルを FlowDocumentScrollViewer にロードするときに、ボタンをクリックして同じ FlowDocumentScrollViewer に another.xaml をロードします。これどうやってするの?ボタンを検索する必要があると思われますが、方法がわかりません。
.net - WPFアプリケーションでFlowDocumentの「印刷プレビュー」を作成するにはどうすればよいですか?
私のさまざまなWPFアプリケーションは、FlowDocumentを表示します。WPF FlowDocumentの印刷の回答で説明されているアプローチを使用して、それらを印刷できます。
次に、「印刷プレビュー」機能を追加したいと思います。通常の場合、ウィンドウに表示されているFlowDocumentを印刷しているので、印刷プレビューは必要ありません。ただし、場合によっては、印刷するFlowDocumentがメモリ内でオンザフライで作成されます。このような場合は、印刷する前に表示したいと思います。
これで、確かに新しいウィンドウをポップしてFlowDocumentを表示できますが、
プレビューは、アプリ内の別のウィンドウではなく、印刷操作の一部であるように感じてもらいたいです。
FlowDocumentScrollViewerに通常のFlowDocumentは必要ありません。「任意のサイズ」ではなく、用紙のサイズ、特定のHxW比に制限し、ページを表示する必要があります。
提案?
標準のウィンドウを使用する必要があります。その場合、FlowDocumentが適切な比率になっていることを確認するにはどうすればよいですか?
Windowsの一部であるPrintDialogUIのスコープ内でプレビューを行うためのより「統合された」方法はありますか?
ありがとう
wpf - FlowDocumentScrollViewer での水平スクロール
画像付きのフロー ドキュメント (図面から作成) があります。ユーザーがテキストをズームせずに画像を個別に拡大 (ズーム) するためのボタンを用意しました。
とにかく、画像が拡大されたときに、FlowDocumentScrollViewer にスクロール用の水平スクロールバーを強制的に表示させることはできますか? 現在、拡大された画像は単純に切り取られています。
敬具、
ポール。
c# - FlowDocument を FlowDocumentScrollViewer にバインドする
私は WPF/XAML の初心者なので、おそらく非常に明白な質問です。
FlowDocument タイプのプロジェクトに新しいアイテムを追加しました。それを呼びましょうCrappyFlowDocument.xaml
:
の途中に大きなテキストの塊を入れないようにしたいので、別のファイルに入れましたPrettyInfoWindow
。
今、私の中でPrettyInfoWindow
、私は困惑しています。
この種の「インクルード」機能についてネット上で何も見つけることができませんが、おそらく私の検索機能はひどいものです。これが FlowDocument.xaml ファイルの本来の目的ではない場合、その目的は何でしょうか?
.net - FlowDocumentScrollViewer の印刷コマンド バインディングを無効にします (代わりに私の Window を使用してください!)
私の WPF アプリでは、他のコントロールの中でもWindow
を含むを作成しました。FlowDocumentScrollViewer
Window を Print コマンドにバインドするコマンドを作成し、いくつかのカスタム ロジックを実行する Executed ハンドラーを使用して、FlowDocumentScrollViewer のコンテンツを印刷します。
すべてうまくいきますが、1 つ問題があります。
ユーザーが FlowDocumentScrollViewer 内をクリックしてから Ctrl + P を押すと、ウィンドウではなく、FlowDocumentScrollViewer 自体の Print コマンド バインディングが実行されます。そのため、カスタム ロジックが実行されず、印刷結果が正しくありません。
FlowDocumentScrollViewer の Print コマンド バインディングを無効にし、Ctrl + P を押すと常に Windows の Print コマンド バインディングが実行されるようにするにはどうすればよいですか?
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 - FlowDocumentScrollViewer内でTextBlockをラップまたはスクロールする方法
4 行 x 2 列のグリッド内に次の XAML があります。Grid.ColumnDefinitions では、両方の ColumnDefinition Width が * に設定されています。
データは ObservaleCollection<string> から取得され、見栄えがよく、垂直方向に正しくスクロールします。ただし、1 つの項目が TextBlock に水平方向に収まらない場合、テキスト ブロックは折り返されず、FlowDocumentScrollViewer はスクロール バーを表示しません。テキストを表示する唯一の方法は、ウィンドウを水平方向に拡大することです。私が間違っていることと、TextWrapping 設定が尊重されない理由を誰かが知っていますか?
ここで重要な場合は、スタイル myFlowDoc です
[編集 1] 以下は、ラップする必要があるエラー メッセージを含む全画面です。この画像の下には、メッセージ全体を表示できるようにウィンドウを広げてメッセージの詳細領域のみを表示したものがあります。また、ユーザー コントロールの xaml 全体をhttps://gist.github.com/1036178#に配置しました。
[編集 2.1] @Navid の提案により、間接的に答えが導き出されました。「/」を削除し、データ テンプレートでラップするとうまくいくようです。新しい XAML は次のとおりです。
wpf - flowdocumentscrollviewer 段落表示 true false
以下のように、アプリケーションの 1 つで flowdocumentscrollviewer を使用しました。
私の問題は、C# コードから表示/非表示にしたいことです。
ボタンを表示/非表示にすることはできますが、実行できず、の可視性属性が見つかりません。
どのようにできるのか...
私を助けてください。