1

with データ バインドGeometryModel3DDiffuseMaterial使用した WPF コントロールがあります。ImageBrushImageSource

私の目標は、マウスをホバーしながら「断面」を表示することです。そのために、オブジェクトの適切な位置を取得できます。問題は次のとおりです。WPF には「3D ライン」がありません。

使用する画像に線を引くテストを行いましたがImageSource、視覚的な結果はまさに私が望むものです。

したがって、次のことを行う予定です。ベース イメージを一度生成してから、その上に適切な線を描画し、使用するプロパティを として設定しますImageSource

私は2つのアプローチを検討しました:

  1. タイプのバインドされた ImageSource を持っていますBitmapImage。次にSystem.Drawing.Bitmap、空白のテクスチャ (線なし) を使用して 1 回作成し、線の位置を変更するたびに、線のBitmapImage描画をSystem.Drawing.Graphics;で再作成します。

  2. タイプのバインドされた ImageSource を持っていますDrawingGroup。次に、System.Windows.Media.ImageDrawing一度作成し、線の位置を変更するたびに、1 つの線で構成されたものDrawingGroupだけを変更して を再作成します。GeometryDrawing

ある方法が他の方法よりも固有の利点はありますか?

4

2 に答える 2

1

パフォーマンスの違いを実際にテストしたことはないことは認めざるを得ませんが、このDrawingクラスを使用すると、基本的な形状や画像を軽量な方法で操作できることはわかっています。MSDNのDrawingクラスページから:

描画オブジェクトは軽量オブジェクトで、幾何学的形状、画像、テキスト、およびメディアをアプリケーションに追加できます。描画オブジェクトは、レイアウト、入力概要、およびフォーカスをサポートしていないため、軽量であると見なされます。描画はパフォーマンス上の利点があるため、背景やクリップ アートに最適です。ビジュアル レベルでプログラミングする場合も、描画を使用します。

逆に、クラスにはあらゆる種類の追加の追加機能と便利な機能が組み込まれているため、クラスBitmapImageよりも軽量ではありません。DrawingMSDNのImaging Overviewページから:

BitmapImage は、Extensible Application Markup Language (XAML) の読み込み用に最適化された特殊な BitmapSource であり、イメージ コントロールのソースとしてイメージを表示する簡単な方法です。

于 2014-01-10T14:29:39.490 に答える