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 :

Lien vers une page HTML local (ou un pdf) dans un TextBlock


Sujet :

Windows Presentation Foundation

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 33
    Points
    33
    Par défaut Lien vers une page HTML local (ou un pdf) dans un TextBlock
    Bonjour,

    J'essaie d'ouvrir via un lien dans mon TextBlock une page HTML local (ou un PDF) via un lien.

    Pour cela j'ai utiliser la balise Hyperlink à l'intérieur de mon TextBlock:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <TextBlock TextWrapping="Wrap">
     
                Pour lire le manuel, cliquez <Hyperlink NavigateUri="./aide/aide.html" >ici</Hyperlink>.
            </TextBlock>
    Le problème c'est qu'il n'y a aucune réaction quand je clique sur le lien!

    J'ai cherché sur google et ils ne proposent que des liens vers une page internet (pas local) en utilisant une regex (je connais les regex mais je trouve ça complexe par rapport à ce que je veux faire).

    En espérant que vous puissiez m'aider,

    Cordialement,

    sushis

  2. #2
    Membre éprouvé Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Points : 947
    Points
    947
    Par défaut
    Salut,

    Citation Envoyé par MSDN
    Hyperlink peut uniquement accéder à la valeur de la propriété NavigateUri si le parent direct ou indirect de Hyperlink est un hôte de navigation, y compris NavigationWindow, Frame ou tout navigateur qui peut héberger XBAPs
    Tu peux utiliser l'évènement Click :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void Hyperlink_Click(object sender, RoutedEventArgs e)
            {
                Process.Start("UnChemin");
            }

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Merci pour ta réponse!

    je n'arrive pas à trouver la doc sur l'objet Process.

    En fait, mon code ne reconnait pas l'objet Process et je ne sais pas quel namespace utilisé (puisque j'arrive pas à la trouver dans la doc!).

  4. #4
    Membre éprouvé Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Points : 947
    Points
    947
    Par défaut
    je ne sais pas quel namespace utilisé
    System.Diagnostics

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Merci pour ta réponse!

    ça marche mais seulement si je donne le chemin absolu vers le fichier. Moi j'aimerai indiquer le chemin relatif,mon fichier html est dans un dossier que j'ai placé dans mon bin/debug, je ne sais pas d'où part mon programme quand je l'éxécute (j'ai cru dans le dossier debug mais ça ne marche quand je fait cela: "./Aide/Aide.html", j'ai essayé de faire ça aussi "Aide/Aide.html" mais ça donne aucun résultat).

  7. #7
    Membre confirmé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Points : 610
    Points
    610
    Par défaut
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    AppDomain.CurrentDomain.BaseDirectory

    Path de démarrage de ton exe, ensuite à toi de mettre la suite pour accéder à ton fichier (+"Aide\\Aide.Html")

    Le mieux étant d’intégrer ton fichier html dans ton projet en tant que ressource, cocher l'option pour le Copier dans le répertoire de sortie (propriétés).

    edit : erreur de code

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Où est-ce que je dois mettre mon dossier?

    Je l'ai mis bin\Debug mais il ne le trouve.

  9. #9
    Membre confirmé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Points : 610
    Points
    610
    Par défaut
    Tu ajoutes un dossier à ta solution, et tu mets dedans ton fichier .pdf.
    Clic droit sur le fichier, Propriétés et dans Action à la génération tu choisis Toujours copier.

    Ensuite tu reprends le bout de code de yonpo + le mien pour lancer un process sur le bon fichier

    Bon code !

    @+

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Voila ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void Hyperlink_Click(object sender, RoutedEventArgs e)
            {
                Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)+"Aide\\aide.html");
            }
    J'ai bien rajouté un dossier dans ma solution mais quand j'accède aux propriétés et bien il y a pas grand chose (en tout cas il n'y a pas " Action à la génération tu choisis Toujours copier."

    J'ai quand même testé pour voir si il trouve le fichier mais non!

  11. #11
    Membre confirmé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Points : 610
    Points
    610
    Par défaut
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start(AppDomain.CurrentDomain.BaseDirectory  +"\\Aide\\aide.html");

    Autant pour moi, j'avais fais une erreur dans le code que je t'avais cité.

    Et dans Propriétés, Copier dans le répertoire de sortie -> Toujours Copier (sur ton fichier et pas sur le dossier)

    Oublie pas de rajouter ton fichier HTML dans le dossier de ta solution avec Visual Studio.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    J'ai VS 2010 et j'ai ajouter un dossier dans ma solution (clic-doit ajouter Nouveau dossier), et quand je fais clic-droit propriété et bien il y a rien de ce que tu dit.

    Voici un screenshoot:



    [EDIT]Je me suis trompé de screenshoot mais c'est modifié, c'est le bon là.

  13. #13
    Membre confirmé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Points : 610
    Points
    610
    Par défaut
    Citation Envoyé par koyot3 Voir le message
    Et dans Propriétés, Copier dans le répertoire de sortie -> Toujours Copier (sur ton fichier et pas sur le dossier)

    Oublie pas de rajouter ton fichier HTML dans le dossier de ta solution avec Visual Studio.
    Il faut faire cela sur le fichier HTML et PAS sur ton dossier

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    ha d'accord désolé j'avais pas compris .

    Bon j'ai fait ce que t'as dit et le fichier reste introuvable!

    Voici un screenshoot de mon explorateur de solution au cas où j'ai pas pigé un truc:


  15. #15
    Membre confirmé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Points : 610
    Points
    610
    Par défaut
    a tout hasard, as-tu vérifié que physiquement ton fichier est bien dans ton répertoire de sortie ? (Debug\Aide\...) ?

    et le AppDomain.CurrentDomain.BaseDirectory +"\\Aide\\Aide.html" te donne quoi si tu mets un point d'arrêt dessus ?

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    C'est bon ça marche, j'avais mis ton ancien code et j'avais pu que t'avais modifié ça!

    ensuite je ne savais pas qu'il fallait mettre le dossier physiquement dans le dossier debug puisque quand j'ai crée mon dossier aide dans ma solution cela a crée le dossier dans la racine du projet.

    enfin bref ça marche maintenant merci beaucoup!

  17. #17
    Membre confirmé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Points : 610
    Points
    610
    Par défaut
    Le koyot c'est moi

    Je m'étais planté dans ma réponse pour récupérer le path de démarrage, je l'ai d'ailleurs corrigé.

    Normalement pas besoin de copier ton dossier physiquement : si tu as actives bien la copie à la génération de ton fichier .HTML, il est crée automatiquement...

    Enfin ça marche c'est le principal

    Bonne soirée

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/12/2012, 22h22
  2. [HTML] Lien vers une page contenant une frame
    Par delercem dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 31/07/2008, 16h57
  3. [FLASH 8] Création de lien vers une page HTML avec Flash
    Par °°° Zen-Spirit °°° dans le forum Flash
    Réponses: 8
    Dernier message: 07/01/2008, 18h07
  4. lien vers une page html
    Par Jasmine80 dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/03/2007, 11h13
  5. [FLASH MX] Lien d'une animation Flash vers une page html
    Par tinkye_winkye dans le forum Flash
    Réponses: 10
    Dernier message: 19/01/2005, 10h11

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