2017-07-29 2 views
1

Je veux créer un arrière-plan défilant répété qui ne s'étire pas lorsque chenages taille de la fenêtre. voici mon code simplifide et son résultat:Comment créer un arrière-plan déroulant répété qui ne s'étire pas dans WPF?

<ScrollViewer Grid.Column="0" x:Name="leftpan" Grid.ColumnSpan="2"> 
      <Grid Height="1000" Width="{Binding Width, ElementName=ppp}" ShowGridLines="False" > 
       <Grid.Background> 
        <ImageBrush ImageSource="bg/libChef2.png" TileMode="Tile" Viewport="0,0,0.2,0.2" /> 
       </Grid.Background> 

       <WrapPanel x:Name="bookraw" > 
        <WrapPanel.Effect> 
         <DropShadowEffect Direction="270" ShadowDepth="8" Opacity="0.6" BlurRadius="6"/> 
        </WrapPanel.Effect> 
       </WrapPanel> 
      </Grid> 
     </ScrollViewer> 

le résultat du code ci-dessus est la suivante:

screen shot of result

Comment ma structure devrait être que déplacer la grille de fond avec défilement vers le haut et vers le bas et quand La largeur de défilement change les arrière-plans répétés ne s'étirent pas horizontalement. Lorsque la grille qui contient l'arrière-plan change de largeur, ce sont les tronçons de vignette d'arrière-plan. mais en hauteur Il n'a pas de problème car sa hauteur est constante. L'objectif principal est d'avoir une visionneuse de défilement avec un fond en mosaïque que son arrière-plan ne s'étend pas.

+1

« fond répété étant encore » On ne sait pas ce que cela signifie exactement. Veuillez être plus précis en expliquant ce que vous essayez d'accomplir et ce qui ne va pas avec votre solution actuelle. – Clemens

+1

J'ai édité ma question et ajouté plus de description. S'il vous plaît, aidez Clemens. –

Répondre

2

Pour une taille de tuile fixe, définissez la fenêtre d'affichage du ImageBrush en unités absolues:

<ImageBrush ImageSource="bg/libChef2.png" TileMode="Tile" 
      Viewport="0,0,100,100" ViewportUnits="Absolute" /> 
+1

Cela a fonctionné préfet! merci Clemens. :) –