web-dev-qa-db-fra.com

Définir l'image d'arrière-plan sur la grille dans WPF à l'aide de C #

J'ai un problème: je veux définir l'image de ma grille via du code derrière.

Quelqu'un peut-il me dire comment procéder?

40
Shashank

Avez-vous oublié la propriété Background . Le pinceau doit être un ImageBrush dont ImageSource peut être défini sur votre chemin d'image.

<Grid>
    <Grid.Background>
        <ImageBrush ImageSource="/path/to/image.png" Stretch="UniformToFill"/>
    </Grid.Background>

    <...>
</Grid>
47
Amsakanna

Tout cela peut facilement être obtenu dans le xaml en ajoutant le code suivant dans la grille

<Grid>
    <Grid.Background>  
        <ImageBrush ImageSource="/MyProject;component/Images/bg.png"/>     
    </Grid.Background>
</Grid>

Il ne vous reste plus qu'à ajouter un dossier à la solution appelée "Images" et à ajouter un fichier existant à votre nouveau dossier "Images", dans ce cas appelé "bg.png"

67
Jan

J'ai mes images dans une bibliothèque de classe séparée ("MyClassLibrary") et elles sont placées dans le dossier "Images". Dans l'exemple, j'ai utilisé "myImage.jpg" comme image de fond.

  ImageBrush myBrush = new ImageBrush();
  Image image = new Image();
  image.Source = new BitmapImage(
      new Uri(
         "pack://application:,,,/MyClassLibrary;component/Images/myImage.jpg"));
  myBrush.ImageSource = image.Source;
  Grid grid = new Grid();
  grid.Background = myBrush;          
24
AH.

Afin d'éviter le problème de chemin, vous pouvez simplement essayer ceci, il suffit de conserver l'image d'arrière-plan dans le dossier images et d'ajouter ce code

<Grid>
  <Grid.Background>
    <ImageBrush Stretch="Fill" ImageSource="..\Images\background.jpg"
                AlignmentY="Top" AlignmentX="Center"/>
  </Grid.Background>
</Grid>
1
Tazwar Utshas