Исходный размер изображения WPF .NET

#wpf #image #c#-4.0

#wpf #изображение #c #-4.0

Вопрос:

Если я открою изображение, используя этот код, я получу правильную ширину и высоту:

 Bitmap bitmap = new Bitmap(@"C:UsersJavier EscribanoDesktopsample.png");

var imageHeight = bitmap.Height; //1270
var imageWidth = bitmap.Width; //1650
  

но если я использую этот код для отображения изображения в элементе управления WPF, размер изображения автоматически изменяется. Я хочу сохранить исходные размеры:

 ImageSource img = (ImageSource)new ImageSourceConverter().ConvertFromString(
                        @"C:UsersJavier EscribanoDesktopsample.png");
this.image.Source =  img;
this.image.Width = img.Height; //1057
this.image.Height = img.Width; // 817
  

Комментарии:

1. Используйте img.PixelWidth и img.PixelHeight .

Ответ №1:

Это, скорее всего, вызвано несоответствием ppi (пикселей на дюйм) изображения png и dpi (точек на дюйм) WPF. У Скотта Хансельмана есть хороший пост об этом здесь.