IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Probleme de ressource, System.Windows.Markup.StaticExtension leve une exception


Sujet :

Windows Presentation Foundation

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Probleme de ressource, System.Windows.Markup.StaticExtension leve une exception
    Bonjour,

    J4ai une fenetre à laquelle j'ai ajouté la possibilité d'ouvrir d'une fenetre "A propos". J'ai pris exemple sur une appli ou cela fonctionne.
    Chez moi, j'ai une erreur qui bloque tout quand j'ouvre cette fenetre "About".

    Une exception non gérée du type 'System.Windows.Markup.XamlParseException' s'est produite dans PresentationFramework.dll
    Informations supplémentaires*: 'La valeur fournie sur 'System.Windows.Markup.StaticExtension' a levé une exception.' numéro de ligne '7' et position de ligne '9'.

    Le code de ma fenetre About qui semble etre la cause de l'erreur:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <Window x:Class="MyProject.Views.AboutWindowView"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:c="clr-namespace:MyProject.Converters"
            xmlns:p="clr-namespace:MyProject.Properties"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            ResizeMode="NoResize"
            SizeToContent="WidthAndHeight"
            Title="{x:Static p:Resources.AboutTitle}"
            WindowStartupLocation="CenterOwner">
        <Window.Resources>
            <c:StringPathToImageSourceConverter x:Key="ImageConverter" />
        </Window.Resources>
        <Grid Height="200"
              Margin="5"
              Width="400">
            <Grid.RowDefinitions>
                <RowDefinition Height="0.30*" />
                <RowDefinition Height="0.60*" />
                <RowDefinition Height="0.10*" />
            </Grid.RowDefinitions>
            <StackPanel Margin="10" 
                        Orientation="Horizontal">
                <Image x:Name="_image" Margin="2" Source="{Binding Source={x:Static p:Resources.AboutImage}, Converter={StaticResource ImageConverter}}" />
                <TextBlock FontSize="16"
                           FontWeight="Bold" 
                           Text="{x:Static p:Resources.CompanyName}">
                    <TextBlock.Effect>
                        <DropShadowEffect />
                    </TextBlock.Effect>
                </TextBlock>
            </StackPanel>
            <StackPanel Grid.Row="1"
                        Margin="10">
                <TextBlock FontSize="12"
                           FontWeight="Normal"
                           Text="{x:Static p:Resources.ApplicationName}" />
                <TextBlock />
                <TextBlock FontSize="12"
                           FontWeight="Normal"
                           Text="Version 1.0" />
                <TextBlock />
                <TextBlock FontSize="12"
                           FontWeight="Normal"
                           Text="{x:Static p:Resources.Copyright}" />
            </StackPanel>
            <Grid Grid.Row="2">
                <Button Click="ok_Click" 
                            Content="{x:Static p:Resources.Ok}"
                            Height="20"
                            HorizontalAlignment="Right"
                            IsDefault="True"
                            Name="ok"
                            VerticalAlignment="Bottom"
                            Width="80" />
            </Grid>
        </Grid>
    </Window>

    Le designer m'affiche la fenetre comme il faut sans probleme. Ca pete toujours pour la meme raison a la 2° ligne (a la 3° si je commente la 2°):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AboutWindowView about = new AboutWindowView();
                about.Owner = Application.Current.MainWindow;
                about.ShowDialog();
    Si je vire les 4 lignes du xaml, ca pete de la meme maniere a l'equivalent de la ligne 23 (l'image).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ResizeMode="NoResize"
            SizeToContent="WidthAndHeight"
            Title="{x:Static p:Resources.AboutTitle}"
            WindowStartupLocation="CenterOwner"
    (pour info je m'inspire du projet workOrders du cours microsoft pour WPF 10262A).

    Si quelqu'un a une idée de ce qui pourrait provoquer cette erreur

    Merci beaucoup,

    Inter'

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    'La valeur fournie sur 'System.Windows.Markup.StaticExtension' a levé une exception.'
    OK, donc on devrait pouvoir voir de quelle exception il s'agit... Essaie de voir la InnerException dans le debugger

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Ok, merci, je suis une bille en debug (et je le regrette bien, mais on m'a jamais appris...), du coup j'ai pas eu le reflexe de regarder l'inner...!

    Du coup oui, j'ai des info en plus!

    "La valeur StaticExtension MyProject.Properties.Resources.AboutTitle' ne peut pas être résolue en énumération, champ statique ou propriété statique."

    Du coup mon probleme venait du "x:Static".

    J'ai testé avec x:Refence et ca fonctionne. Mais comme ca fonctionnait avec le static sur l'autre projet, j'ai cherché une difference...
    Tout semblait pareil sur le fichier de Resources.resx sauf! Sauf l'outil personnalisé utilisé!!

    Celui utilisé par le projet fonctionnel est PublicResXFileCodeGenerator, qui n'est pas celui par defaut (j'ai plus le nom sous la main).


    'fin bref, j'ai remis x:Static avec le bon outil personnalisé et ca fonctionne maintenant!

    Merci beaucoup pour le petit coup de pouce qu'il me manquait

    ps: je vais maintenant me renseigner sur cette etrange bete qu'est l'outil personnalisé et dont je ne connais rien ^^ Si quelqu'un a un lien sympa, je suis preneur. Merci!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Interfector Voir le message
    ps: je vais maintenant me renseigner sur cette etrange bete qu'est l'outil personnalisé et dont je ne connais rien ^^ Si quelqu'un a un lien sympa, je suis preneur. Merci!
    C'est un outil qui est exécuté sur le fichier à chaque fois qu'il est modifié. Dans le cas de [Public]ResXFileCodeGenerator, ça génère un fichier de code pour accéder aux ressources déclarées dans le fichier resx. L'outil par défaut génère une classe internal, et non public, donc le runtime WPF ne peut pas y accéder.

    Il y a un tuto ici :
    http://pmusso.developpez.com/tutorie...o/custom-tool/

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Ah ok, merci bien, je vois tres bien ce que c'est... pour avoir rempli des fichiers de données a plat qu'on m'avait dit "on en fait des classes apres", et moi trop noob pour comprendre cette magie a l'epoque, en mode wtf ^^

    Grace a toi je suis un peu moins noob

    Encore merci pour tout.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de ressource matériel sous systeme virtuel
    Par bambi98 dans le forum Virtualisation
    Réponses: 0
    Dernier message: 03/11/2012, 02h06
  2. Réponses: 1
    Dernier message: 19/02/2012, 14h43
  3. Probleme de deplacement de windows.
    Par Clad3 dans le forum OpenGL
    Réponses: 3
    Dernier message: 07/12/2004, 00h51
  4. [langage] Probleme avec commande system et code
    Par Ludo167 dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2004, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo