Silverlight 3.0イメージコントロールを使用しており、Stretch property="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>