2011-08-15 104 views
3

裏面我設計與滾動查看器和堆疊面板一個成像圖庫在WPF如下所示:圖像高度堆疊面板

<ScrollViewer x:Name="ShopsScroll" Grid.Row="1" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"> 
     <StackPanel x:Name="stackPanel" Margin="0" Orientation="Horizontal" Height="Auto"> 
      <Image Source="Images/1F/L1_angesb.jpg"/> 
      <Image Source="Images/1F/L1_chanel.jpg"/> 
      <Image Source="Images/1F/L1_dior.jpg"/> 
      <Image Source="Images/1F/L1_gucci.jpg"/> 
      <Image Source="Images/1F/L1_LV.jpg"/> 
      <Image Source="Images/1F/L1_nike.jpg"/> 
</StackPanel> 

由於圖像的尺寸較大,我想調整它們的大小,以適應StackPanel的高度。但是,當我將StackPanel中的高度值設置爲「Auto」時,它只是使用圖像的高度,而不是其父級ScrollViewer。如果我給StackPanel設置了一個固定值,問題似乎已經解決了,但我需要在全屏幕中以不同大小的屏幕使用我的應用程序。因此,它應該適應不同的規模,但不能硬編碼固定值。

我該怎麼做?

回答

1

你可以使用一個元件結合將圖像的高度綁定到StackPanel元素的高度。抱歉,我現在不能測試此代碼,但你可以試試

<Image Source="Images/1F/L1_nike.jpg" Height="{Binding ElementName=ShopsScroll, Path=Height}" /> 

MSDN documentation on the Binding.ElementName property

當您想綁定到應用程序中另一個元素的屬性時,此屬性非常有用。例如,如果要使用Slider控制應用程序中另一個控件的高度,或者要將控件的內容綁定到ListBox控件的SelectedValue屬性。

0

嘗試設置HorizontalAlignment = "Stretch"VerticalAlignment = "Stretch"爲StackPanel中

在我看來最好是有ItemsControl中包含圖片,你的情況

<ItemsControl HorizontalContentAlignment="Stretch"> 
      <Image Source="Images/1F/L1_angesb.jpg"/> 
      <Image Source="Images/1F/L1_chanel.jpg"/> 
      <Image Source="Images/1F/L1_dior.jpg"/> 
      <Image Source="Images/1F/L1_gucci.jpg"/> 
      <Image Source="Images/1F/L1_LV.jpg"/> 
      <Image Source="Images/1F/L1_nike.jpg"/> 

</ItemsControl> 

希望這有助於