0
BitmapImage bi = new BitmapImage(new Uri(@"D:\DSC_0865.png"));
bi.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
img1.Source = bi;

上記のコードで、 を設定しようとすると、bi.CreateOptions取得されません。なしと表示されています。解決策を提案してください。

4

2 に答える 2

2

Begin/EndInitでBitmapImageを設定してみてください

BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
bi.UriSource = new Uri(@"D:\DSC_0865.png")
bi.EndInit();
img1.Source = bi;
于 2009-06-03T12:19:00.713 に答える
1

使用したBitmapImageコンストラクターのMSDNドキュメントには、 「このコンストラクターを使用して作成されたBitmapImageオブジェクトは自動的に初期化されます。初期化後、プロパティの変更は無視されます」 という短いコメントがあります。

したがって、コンストラクターを呼び出した後にCreateOptionsを設定しても、効果はありません。実際、BitmapImageはコンストラクターで作成されているので、それは理にかなっています。プロパティセッターはInvalidOperationExceptionをスローする必要があると主張することができます。

問題の解決策は、別のコンストラクターを使用することです。たとえば、CreateOptionsプロパティのMSDNドキュメントページの例に示されています。

于 2009-06-03T12:20:20.023 に答える