Как установить BitmapImage.CreateOptions в WPF с использованием C # - PullRequest
0 голосов
/ 03 июня 2009
BitmapImage bi = new BitmapImage(new Uri(@"D:\DSC_0865.png"));
bi.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
img1.Source = bi;

В приведенном выше коде, если я пытаюсь установить bi.CreateOptions, он не принимает его. Это показывает, как никто. Пожалуйста, можете ли вы предложить решение?

Ответы [ 2 ]

2 голосов
/ 03 июня 2009

Попробуйте установить BitmapImage с помощью Begin / EndInit

BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
bi.UriSource = new Uri(@"D:\DSC_0865.png")
bi.EndInit();
img1.Source = bi;
1 голос
/ 03 июня 2009

Документация MSDN используемого вами конструктора BitmapImage имеет краткое замечание, в котором говорится, что "Объекты BitmapImage, созданные с помощью этого конструктора, автоматически инициализируются. После инициализации изменения свойств игнорируются."

Поэтому установка CreateOptions после вызова конструктора не имеет никакого эффекта. На самом деле, BitmapImage создается в конструкторе, так что это имеет смысл. Вы можете утверждать, что установщик свойства может выдать исключение InvalidOperationException.

Решением вашей проблемы является использование другого конструктора, например, как показано в примере на странице документации MSDN для свойства CreateOptions .

...