2010-11-22 14 views
1

J'ai un projet SilverLight, dans le projet j'ai un document PDF.HyperlinkButton à la source interne

Comment créer une référence au document pdf afin qu'il s'ouvre en cliquant sur un lien hypertexte? Quelle devrait être l'action de construction sur le document PDF?

Merci d'avance.

Répondre

0

Je pense, l'affaire avec HyperlinkButton ne fonctionnera pas, parce que vous naviguerez concernent Projet Silverlight mais pas de projet web associé.

Vous pouvez utiliser le téléchargement de fichier. Je recommande Interlink Upload Download.

Bonne chance.

+0

Merci, ne s'est pas rendu compte qu'il serait si complexe de se référer à un simple fichier dans un projet Silverlight. Mais juste est juste, vous ne pouvez pas vous attendre à ce que tout soit simple. :-) – RvG

+0

Je ne suis pas sûr de savoir comment cela aide, une fois qu'il est téléchargé, que faites-vous alors? – AnthonyWJones

0

Vous ne devez pas l'inclure dans le projet Silverlight. Au lieu de cela, incluez-le dans le projet Web associé en tant que contenu Web standard. Par exemple, si vous placez dans le projet Web dans un dossier appelé « Documents », puis sur le bouton ressemblera à: -

<HyperlinkButton Content="LaunchPDF" TargetName="_blank" NavigateUri="/Documents/MyDoc.pdf" /> 
+0

Merci aussi pensé à ça, mais je préfère avoir le fichier mon projet Silverlight. Parce que je veux être capable de redistribuer le fichier xap, indépendant d'un site web. – RvG

+0

@RvG: Qu'est-ce que tu vas faire avec quand c'est dans le Xap? Silverlight ne peut pas utiliser le contenu PDF directement> – AnthonyWJones

+0

L'idée était simplement de montrer le document, nous utilisons des fichiers PDF pour la documentation de l'utilisateur. Comme je l'ai déjà écrit, l'idée est d'avoir le document dans le projet XAP, vous aurez toujours un lien vers celui-ci lors de la redistribution de l'application. – RvG

0

Vous pouvez utiliser ICommand:

ViewModel.cs:

 private static string _ApplicationUrl; 
    public static string ApplicationUrl 
    { 
     get 
     { 
      if (_ApplicationUrl == null) 
      { 
       _ApplicationUrl = Application.Current.Host.Source.GetComponents(UriComponents.Scheme | UriComponents.Host | UriComponents.Port, UriFormat.UriEscaped); 
       //_ApplicationUrl = HtmlPage.Document.DocumentUri.GetComponents(UriComponents.Scheme | UriComponents.Host | UriComponents.Port, UriFormat.UriEscaped); 
      } 
      return _ApplicationUrl; 
     } 
    } 

    private RelayCommand<string> _WebUriCommand; 
    public RelayCommand<string> WebUriCommand 
    { 
     get 
     { 
      if (_WebUriCommand == null) 
      { 
       _WebUriCommand = new RelayCommand<string>((p) => { HtmlPage.Window.Navigate(new Uri(ApplicationUrl + p), "_blank"); }); 
      } 
      return _WebUriCommand; 
     } 
    } 

View.xaml:

<HyperlinkButton Command="{Binding WebUriCommand}" CommandParameter="/Documents/MyDoc.pdf" Content="Download"/>