代码之家  ›  专栏  ›  技术社区  ›  Mart

在Silverlight中正确取消图像下载

  •  0
  • Mart  · 技术社区  · 16 年前

    我有一套 Image

    要开始下载,我写: myImage.Source = new BitmapImage(theUri); .

    • myImage.Source = null; ?
    • 更好的解决方案?

    我不希望通过代码下载图片来保持浏览器缓存的优势。

    1 回复  |  直到 16 年前
        1
  •  1
  •   David Hay    16 年前

    这绝对是可行的——我只是测试了一下以确保。下面是一个您可以尝试的快速课程:

    public partial class Page : UserControl
    {
        private WebClient m_oWC;
        public Page()
        {
            InitializeComponent();
            m_oWC = new WebClient();
            m_oWC.OpenReadCompleted += new OpenReadCompletedEventHandler(m_oWC_OpenReadCompleted);
        }
    
        void StartDownload(string sImageURL)
        {
            if (m_oWC.IsBusy)
            {
                m_oWC.CancelAsync();
            }
            m_oWC.OpenReadAsync(new Uri(sImageURL));
        }
    
        void m_oWC_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
            BitmapImage oBMI = new BitmapImage();
            oBMI.SetSource(e.Result);
            imgMain.Source = oBMI;
        }
    }