none
silverlight 如何通过一个按钮事件下载一个启动一个下载文件呢? RRS feed

  • 问题

  • 在Silverlight中有一个按钮,希望通过按钮事件触发一个文件下载呢,比如 文件的url 为 :  string s = "http://lecture.Silverlight.com/prnfiles/123.zip";

    请问如何实现,谢谢
    2009年12月21日 12:12

答案

  • 1)如果是在XXXFile.cs里面: 给你的Button添加一点代码,如:
            private void CmdDownload_Click(object sender, RoutedEventArgs e) {
                HtmlPage.Window.Invoke("open", new Object[] { "http://lecture.Silverlight.com/prnfiles/123.zip", "_self" });
            }

    2)如果是在XXXFile.xaml里面,估计这样也可以(你试验下):
     <HyperlinkButton Content="Download" NavigateUri="http://lecture.Silverlight.com/prnfiles/123.zip" />


    3) 下载的文件的类型不能是浏览器可以直接浏览的文件类型。如html,aspx,asp等文件,如果是这类文件,需要在Web端写程序。也就是通过指定 attachment 来实现(我就省略吧)。


    4)如果你SL端,和服务器端你都愿意写代码,那方法就太多了。
    2009年12月21日 13:37
  • 你好
        
         在你的按钮事件下加一段这样的代码.
       
         System.Windows.Browser.HtmlPage.Window.Navigate(new Uri("http://localhost:1114/my.zip"), "_newWindow");  

    2009年12月24日 5:32

全部回复

  • 1)如果是在XXXFile.cs里面: 给你的Button添加一点代码,如:
            private void CmdDownload_Click(object sender, RoutedEventArgs e) {
                HtmlPage.Window.Invoke("open", new Object[] { "http://lecture.Silverlight.com/prnfiles/123.zip", "_self" });
            }

    2)如果是在XXXFile.xaml里面,估计这样也可以(你试验下):
     <HyperlinkButton Content="Download" NavigateUri="http://lecture.Silverlight.com/prnfiles/123.zip" />


    3) 下载的文件的类型不能是浏览器可以直接浏览的文件类型。如html,aspx,asp等文件,如果是这类文件,需要在Web端写程序。也就是通过指定 attachment 来实现(我就省略吧)。


    4)如果你SL端,和服务器端你都愿意写代码,那方法就太多了。
    2009年12月21日 13:37
  • 1)如果是在XXXFile.cs里面: 给你的Button添加一点代码,如:
            private void CmdDownload_Click(object sender, RoutedEventArgs e) {
                HtmlPage.Window.Invoke("open", new Object[] { "http://lecture.Silverlight.com/prnfiles/123.zip", "_self" });
            }

    2)如果是在XXXFile.xaml里面,估计这样也可以(你试验下):
     <HyperlinkButton Content="Download" NavigateUri="http://lecture.Silverlight.com/prnfiles/123.zip" />


    3) 下载的文件的类型不能是浏览器可以直接浏览的文件类型。如html,aspx,asp等文件,如果是这类文件,需要在Web端写程序。也就是通过指定 attachment 来实现(我就省略吧)。


    4)如果你SL端,和服务器端你都愿意写代码,那方法就太多了。
    我只是想做一个简单的启动下载就可以了,其他的交给浏览器的下载,因为服务器端文件时一个zip文件
    2009年12月21日 23:48
  • 你好
        
         在你的按钮事件下加一段这样的代码.
       
         System.Windows.Browser.HtmlPage.Window.Navigate(new Uri("http://localhost:1114/my.zip"), "_newWindow");  

    2009年12月24日 5:32