Bonjour,

Je me trouve vraiment co... par moment, mais là quand même...

Jusqu'à présent je développais en VB6 puis VB.net et mon dernier projet dans mon ancienne boite était en VB.net WPF MVVM.

Aujourd'hui je suis en C# et si j'ai pas de gros problème en WinForm, je viens de bloquer sur un truc tout bête en WPF C#.

Comment utiliser les Images en C# WPF et XAML bien-sûr.

J'aimerais que mes images soient intégrées dans l'exe, comme je faisait avant.
J'ai donc naturellement utilisé l'onglet Ressources, dans les propriété du projet, mais impossible à y accéder.

Dans les propriétés de l'objet image j'arrive à lui donner l'image dans "Source", l'image s'affiche mais en lançant le logiciel, il n'y a rien.

Voici un des exemples que j'ai trouvé:

Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<Window x:Class="Test_Image.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Test_Image"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
 
    <StackPanel>
        <WrapPanel Margin="10" HorizontalAlignment="Center">
            <Button Name="btnLoadFromFile" Margin="0,0,20,0" Click="btnLoadFromFile_Click">Load from File...</Button>
            <Button Name="btnLoadFromResource" Click="BtnLoadFromResource_Click">Load from Resource</Button>
        </WrapPanel>
        <Image Name="imgDynamic" Margin="10" Source="/Images/Pokemon.png" />
    </StackPanel>
</Window>

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void BtnLoadFromResource_Click(object sender, RoutedEventArgs e)
        {
            Uri resourceUri = new Uri("./Images/Pokemon.png", UriKind.Relative);
            imgDynamic.Source = new BitmapImage(resourceUri);
        }
 
        private void btnLoadFromFile_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            if (openFileDialog.ShowDialog() == true)
            {
                Uri fileUri = new Uri(openFileDialog.FileName);
                imgDynamic.Source = new BitmapImage(fileUri);
            }
        }
    }
Déjà cela me crée plus de dossier Ressources.
Ensuite l'image s'affiche bien dans le vue de développement.

Nom : 2022-09-16 07_25_52-Window.png
Affichages : 121
Taille : 173,8 Ko

Mais rien dans la vue lorsque c'est en fonctionnement

Nom : 2022-09-16 07_27_19-Window.png
Affichages : 112
Taille : 6,4 Ko

Depuis les boutons le BtnLoadFromResource_Click, ne fonctionne pas.

Mais le chargement de fichier oui.

Avez vous une idée, car j'ai vu plein de site d'exemple, avec du code identique.
Certains parle de dictionnaire, mais j'ai pas percuté vraiment non plus, en tout cas les essaie que j'ai fait ne marche pas.

Donc comment accéder au image ICI:

Nom : 2022-09-16 07_30_29-Window.png
Affichages : 108
Taille : 14,0 Ko

Merci à vous