2016-01-27 2 views
1

Я хочу реализовать контейнер, который имеет элементы списка, которые можно прокручивать. Я устанавливаю фон панели обложки с изображением, но это изображение растягивается в соответствии с элементами панели обертки. Я хочу сделать фон фиксированным, чтобы контент мог прокручиваться, но не растягивая фоновое изображение. Я использую следующий код.Создать постоянный размер Фоновое изображение в панели Wrap в 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.I надеюсь, что это решит вашу проблему.

<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

спасибо. Ты спас много времени. Я тоже пробовал этот ран, но не работал. Я мог бы кое-что забыть. Кстати, спасибо вам большое. –

Смежные вопросы