Я использую элемент управления Silverlight 3.0 Image, установив его свойство Stretch = "Uniform". Если я не ошибаюсь, ожидаемое поведение для Stretch = "Uniform" заключается в том, что он должен масштабировать изображение, сохраняя пропорции, при необходимости создавая почтовый ящик. Это прекрасно работает для изображений с альбомной ориентацией, так как они увеличиваются, чтобы заполнить пространство, сохраняя соотношение сторон, не обрезая изображение. Это полный провал для изображений с более вертикальной или «портретной» ориентацией. Вместо того, чтобы увеличивать изображение, чтобы оно вписалось в элемент управления изображением, они фактически масштабируются за пределы ограничения высоты, так что вы видите только середину изображения с обрезанными верхом и низом. Как будто элемент управления использует только ширину при масштабировании и забывает проверять высоту?
Это ошибка в элементе управления изображением, или я пропустил или неправильно установил свойство? Для воспроизведения найдите / создайте изображение с «портретным» соотношением сторон (выше его ширины) и создайте изображение с помощью Stretch = "Uniform".
**** ОБНОВЛЕНИЕ С ЗАПРОШЕННЫМ XAML ******
Обратите внимание, что причина, по которой размер не является явным, заключается в том, чтобы обеспечить полный экран и масштабирование.
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="9"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="9"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Border BorderBrush="Black" Grid.Row="0" Grid.ColumnSpan="8" BorderThickness="1, 1, 1, 0">
<Border BorderBrush="{StaticResource blackStatusMapLGB}" BorderThickness="9,9,9, 0">
<Border BorderBrush="Gray" BorderThickness="1, 1, 1, 0">
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<MediaElement Height="Auto" Width="Auto" Visibility="Collapsed" AutoPlay="true" Stretch="Fill" MediaFailed="SilverlightMediaPlayer_MediaFailed" Name="previewMediaElement"/>
<Image Name="imagePreview" Stretch="Uniform"/>
</StackPanel>
</Border>
</Border>
</Border>