2012-01-27 10 views
0

私はコードを開発し始めました.SO WPF: arranging collection items in a gridの例を使用しています。WPFリストボックス内の画像のスケーリング

<ListBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" ItemsSource="{Binding YourItems}"> 
<ListBox.ItemsPanel> 
    <ItemsPanelTemplate> 
     <Grid/> 
    </ItemsPanelTemplate> 
</ListBox.ItemsPanel> 
<ListBox.ItemContainerStyle> 
    <Style> 
     <Setter Property="Grid.Column" Value="{Binding X}"/> 
     <Setter Property="Grid.Row" Value="{Binding Y}"/> 
    </Style> 
</ListBox.ItemContainerStyle> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <Image RenderOptions.BitmapScalingMode="LowQuality" Source="{Binding ...ImageSource, Mode=OneWay}"> 
       </Image> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 

グリッドは、撮像されたグリフランテストで充填され、ベース:リストボックスである-ためのItemsControl(XAML幾分簡略化された)今、セル選択能力を得るために、私は、リストボックスにそれぞれのItemsControlを改名しましたコードhere

驚いたことに、それは働きました。選択が有効です。ただし、ItemsControlの場合、スクロールバーはありませんでした。すべてがうまくスケールされました。ウィンドウを小さくすると、グリッドセルが縮小し、画像も縮小しました。ウィンドウを大きくすると、すべてが拡大しました。

今やListBoxはそうではありません。画像のサイズは固定されたままです。ウィンドウのサイズが十分でない場合は、水平スクロールバーがあり、ウィンドウのサイズが十分でない場合、一部の画像が非表示になり、ユーザーは右にスクロールする必要があります。

質問:ListBoxがItemControlの場合、画像は同じになりません。それを修正するために私は何をすべきですか?

答えて

1

これは、ListBoxとItemsControlが異なるスタイルを使用するためです。 ListBoxにItemControlのデフォルトスタイルを簡単に適用できます。

<ListBox Style="{StaticResource ResourceKey={x:Type ItemsControl}}"> 
関連する問題