2016-01-27 89 views
1

我想要實現一個容器,它具有滾動的列表項目我可以用圖像設置包裝面板的背景,但是此圖像根據包裝面板的項目拉伸。我想修改背景,以便滾動內容但不拉伸背景圖像。我正在使用下面的代碼。在WPF中的包裝面板中創建恆定大小的背景圖像

<ScrollViewer x:Name="imageScrollViewer" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled"> 
      <WrapPanel x:Name="panel" Orientation="Horizontal" > 
       <WrapPanel.Background> 
        <VisualBrush> 
         <VisualBrush.Visual> 
          <Image Name="pnlBackground"> 
           <Image.OpacityMask> 
            <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5" > 
             <GradientStop Offset="0.0" Color="#00000000" /> 
             <GradientStop Offset="1.0" Color="#FF000000" /> 
            </LinearGradientBrush> 
           </Image.OpacityMask> 
          </Image> 
         </VisualBrush.Visual> 
        </VisualBrush> 
       </WrapPanel.Background>      
       <ListBox 
       Margin="5" 
       SelectionMode="Extended" 
       ItemsSource="{Binding}" 
       SelectedIndex="0" 
       d:IsHidden="True">       
       </ListBox> 
      </WrapPanel> 
     </ScrollViewer> 

回答

5

而不是爲WrapPanel設置背景,嘗試爲ScrollViewer設置背景。我希望它能解決您的問題。

<ScrollViewer x:Name="imageScrollViewer" 
         VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled"> 
     <ScrollViewer.Background> 
      <VisualBrush> 
       <VisualBrush.Visual> 
        <Image Name="pnlBackground" Source="F:\\TempScreen.PNG"> 
         <Image.OpacityMask> 
          <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5" > 
           <GradientStop Offset="0.0" Color="#00000000" /> 
           <GradientStop Offset="1.0" Color="#FF000000" /> 
          </LinearGradientBrush> 
         </Image.OpacityMask> 
        </Image> 
       </VisualBrush.Visual> 
      </VisualBrush> 
     </ScrollViewer.Background> 
     <WrapPanel x:Name="panel" Orientation="Horizontal" > 

      <ListBox 
      Margin="5" 
      SelectionMode="Extended" 

      SelectedIndex="0" 
      > 
      </ListBox> 
     </WrapPanel> 
    </ScrollViewer> 
+0

謝謝。你節省了我很多時間。我曾嘗試過這款耳毛,但沒有奏效。我可能會忘記一些。順便謝謝你。 –