2016-09-20 27 views
1

画像を「取り込み」(ファイルを取り込む)し、インラインUIContainerで枠内に折り返すことができます。
- しかし、ドキュメントを保存すると、イメージが消えます(非常に短いファイル)。リッチテキストボックス(FlowDocument)内の画像

または、クリップボードからペーストできます(境界ラッパーなし)。
- そして、それはドキュメントに保存されますない - しかし私は、ディスプレイを制御することはできません...

(ファイルから)画像をインポートし、FlowDocumentで実際のビットマップ
を維持するための正しい方法は何リッチテキストの残りの部分と一緒に保存できますか?

EDIT:
私の問題は、URI
と(XAMLで)イメージが表現されていること、のようです - 実際のビットマップではない - ので、どのようにインポートする/それを正しく埋め込みますか?
これは私のインポートコードです:

string fileName = openFileDialog.FileName; 
BitmapImage bitmap = new BitmapImage(new Uri(fileName, UriKind.Absolute)); 

Image image = new Image(); 
image.Source = bitmap; 
image.Width = bitmap.Width; 
image.Height = bitmap.Height; 

Border border = new Border(); 
border.Background = Brushes.Blue; 
border.BorderBrush = Brushes.Red; 
border.BorderThickness = new Thickness(10); 
border.Margin = new Thickness(10); 
border.Padding = new Thickness(10); 

border.Child = image; 

InlineUIContainer box = new InlineUIContainer(border, rt.CaretPosition); 
+0

このhttp://stackoverflow.com/questions/14895745/savingをチェック-richtextbox-flow-document-to-image – Techidiot

+0

Techidiotありがとうございます。私はちょうど "内側"の画像を持つ文書を保存したい - 文書を画像としてエクスポートしない。 – T4NK3R

+0

WPFのハックや回避策のような悪夢のようなものは何故でしょうか?私は今、クリップボードを内部的に使用して不正行為を試みていますが、それはまた非常に難しく、透明性(pngとgif)がWPFをあきらめてしまうのを許しません... – T4NK3R

答えて

0

ではなく、そのようなボーダーのViewboxで画像をカプセル化してみてください。

string fileName = openFileDialog.FileName; 
BitmapImage bitmap = new BitmapImage(new Uri(fileName, UriKind.Absolute)); 

BlockUIContainer blockUI = new BlockUIContainer(); 
Image img = new Image(); 
img.Source = bitmap; 
Viewbox vb = new Viewbox(); 
vb.StretchDirection = StretchDirection.DownOnly; 
vb.Stretch = Stretch.Uniform; 
vb.HorizontalAlignment = HorizontalAlignment.Center; 
vb.VerticalAlignment = VerticalAlignment.Center; 
vb.Child = img; 
blockUI.Child = vb; 

rt.Document.Blocks.Add(blockUI); 
関連する問題