Как получить ширину и высоту изображения - PullRequest
0 голосов
/ 31 марта 2011

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

BitmapImage bitmap = new BitmapImage(new Uri("Images/header.png",UriKind.RelativeOrAbsolute));
Debug.WriteLine("bitmap.PixelHeight : " + bitmap.PixelHeight); 

Она печатает высоту как 0, но фактическая высота изображения составляет 35 пикселей.Это не изображение, загруженное с сервера.Он хранится внутри самого пакета приложения.

Ответы [ 3 ]

1 голос
/ 31 марта 2011

Вы используете свое растровое изображение позже в своем проекте? Если вы используете его в качестве источника в изображении, вы можете попробовать Image.ActualHeight и Image.ActualWidth

1 голос
/ 31 марта 2011

Если он не загружен с сервера, он все равно может быть загружен и обработан асинхронно.Если вы используете тот же вызов Debug.WriteLine после того, как узнаете, что изображение видно, это дает правильные результаты?

0 голосов
/ 01 апреля 2011

Вам нужно дождаться события ImageOpened, прежде чем вы сможете получить значения ширины / высоты. Это связано с тем, что BitmapImage создается асинхронно при загрузке из URI (даже если файл локальный). Только если вы загружаете его из потока, он создается синхронно.

Еще одна вещь, о которой следует знать, это то, что BitmapImage.CreateOption по умолчанию имеет значение DelayCreation, что означает, что он будет создан только тогда, когда BitmapImage назначен элементу в живом дереве. Вы можете установить CreateOption = None, чтобы изменить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...