0

ObservableCollection によって取り込まれている画像のリストがあります。これは、コード ビハインドで ListBox の ItemsSource を Collection にバインドすることによって行われます。結果として得られる画像のリストは見栄えがよくありませんが、すべてが適切に機能しています。現在、画像は水平方向の WrapPanel でラップされています。これは保持したい機能です。ただし、問題は、CameraCaptureTask から取得された画像が横向きモードか縦向きモードかによって、ビューに表示されたときに非常に幅が広​​いか高さが大きくなるということです。アスペクト比を維持したまま、これらの画像のサイズを変更できるようにしたいと考えています。おそらく、幅または高さのいずれかが 128 を超えないように制限を設定します。次のコードでこれをどのように正確に行うのでしょうか? また、画像はアスペクト比を維持することを知っていますか? 例えば、

MainPage.xaml

<ListBox x:Name="Recent" ItemsSource="{Binding}" Margin="8"
                     SelectionChanged="recent_SelectionChanged" toolkit:TiltEffect.IsTiltEnabled="True"
                     ItemContainerStyle="{StaticResource MyStyle}">
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <toolkit:WrapPanel Orientation="Horizontal" />
                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel>
            </ListBox>
4

1 に答える 1

0

ItemTemplate@tanuj_loopが示唆するように設定できますViewBoxが、画像の解像度を維持しながらサイズの制約を確実に取得するために、画像に直接ではなく、アイテムをaに埋め込み、サイズの変更を適用することもお勧めしますのようなものです。

<ListBox.ItemTemplate>
   <DataTemplate>
    <ViewBox MaxHeight="128" MaxWidth="128">
            <Image Source="{Binding }"/>
        </ViewBox>                                    
   </DataTemplate>
</ListBox.ItemTemplate>

このようにViewBoxして、潜在的なサイズ変更の問題をすべて処理し、画像が思いどおりに鮮明に表示されます。

お役に立てれば。

于 2013-08-01T14:32:48.927 に答える