Я пытаюсь разместить несколько изображений в пределах моего экрана. Я использую панель стека, видя, что это лучший макет для моей конечной цели. Изображения с локального компьютера пользователя следует открывать и добавлять в панель стека до тех пор, пока на экране не останется места для работы.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я загружаю свое растровое изображение в память, оно предоставляет мне неточную ширину (она обеспечивает ширину DPI, однако мне нужна окончательная ширина, которую она держит на экране). в идеале, если ширина вашего экрана составляет 1000, я бы хотел загружать изображения до тех пор, пока на экране не будет использована ширина 1000 или около 1000, что сложно, если я не могу получить ширину изображения (аналогично тому, что окна дали бы мне для ширины, если я посмотрел файл в проводнике)
Я использую следующее для загрузки растрового изображения в память:
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(fullFilePath, UriKind.Absolute);
bitmap.EndInit();
MessageBox.Show(bitmap.Height.ToString() + "is the height. this is the width->" + bitmap.Width.ToString());
Результаты, которые я получаю: 1728 — высота
1152 — ширина
для изображения, которое на самом деле 864 x 1296 (изображение в формате jpg).
Эти изображения находятся в панели стека, можно ли извлечь размер определенного дочернего элемента панели стека? Пример stackpannel.children[0].width
Что-то в этом роде?