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。

您的问题的解决方案是使用另一个构造函数,例如,如MSDN 文档页面上 CreateOptions 属性的示例所示。

于 2009-06-03T12:20:20.023 回答