0

ランドスケープ イメージとポートレート イメージをグリッド コントロールにバインドしようとしています。横向きの画像は正しく読み込まれますが、縦向きの画像を読み込むと問題が発生します。下部が切り取られている (オーバーフローしている) ため、グリッド行は高さいっぱいの画像を読み込むことができません。Row プロパティをHeight="Auto"またはHeight="*"に設定しようとしましたが、うまくいきませんでした。ここに私のXAMLがあります:

<ItemsControl ItemsSource="{Binding ItemsPrasanja}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>

                                <TextBlock 
                                    Name="txtPrasanje" 
                                    Grid.Row="0" 
                                    Text="{Binding Tekst}" 
                                    TextWrapping="Wrap"/>

                              <Image Name="imgPrasanje" 
                                    Grid.Row="1"  
                                    Source="{Binding Slika}"  
                                    Margin="0,5,0,0"
                                    />                                   
                            </Grid>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>

Width または Height を Grid または Image コントロールに手動で設定せずに、これを解決するにはどうすればよいですか?

PS ItemsControlは別の Grid コントロールの一部です。Height=" * "に設定した (Grid.Row="0") を入力します

                <Grid.RowDefinitions>
                   <RowDefinition Height="*"/>
                   <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
4

1 に答える 1

0

Image オブジェクトの Stretch プロパティを調べる必要があります。

Fill の値は、出力領域を完全に埋めるために画像を引き伸ばします。出力領域と画像の縦横比が異なる場合、この引き延ばしにより画像が歪みます。Image で画像の縦横比を保持するには、このプロパティを Uniform (既定) または UniformToFill に設定します。

于 2013-08-11T08:33:04.983 に答える