2

ImageSource (BitmapSource) としてロードした 16x16 の .png ファイルがあり、タブコントロール ヘッダーの画像で使用すると正常に動作します。

ユーザーがドキュメント タブをドラッグしたときに、(WPF Window クラスから継承された) フローティング ウィンドウで同じ画像を使用したいと考えています。(これは、タブ ヘッダーに画像を表示できるように調整した AvalonDock です)

Web で多くの検索を行った結果、Window.Icon には BitmapFrame が必要であることがわかりましたが、すべてのサンプル コードは .ico ファイルが利用可能であると想定しているようですが、私の場合はそうではありません。

次のコードを試しました(さらに、クローン作成、凍結などのバリアントも):

var image = (Image) content.Icon;
var bitmapSource = (BitmapSource) image.Source;

Icon = BitmapFrame.Create(bitmapSource);

ただし、Show() メソッドが呼び出されると、「'System.ExecutionEngineException' 型の例外がスローされました」という例外がスローされます。

ウィンドウがアイコンを表示できるように、互換性のあるビットマップをオンザフライで作成するにはどうすればよいですか?

4

2 に答える 2

0

BitmapFrame.Createが正しかったことがわかります。既存のBitmapSourceではなくURIを渡す必要があります。

于 2010-04-05T06:57:55.020 に答える
0

画像を動的にロードできるようにする必要がありますか? それとも、常に同じアイコンを使用しますか?

実行時にイメージが決定されない場合は、いつでもイメージを手動で変換して、Microangeloなどを使用して .ico ファイルを生成できます。実際にその場でアイコンを作成する必要がある場合、明らかにこれは役に立ちません。

于 2010-03-22T15:06:00.643 に答える