/// <summary> /// Xử lý sự kiện Login /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnLogin_Click(object sender, RoutedEventArgs e) { if (Validation()) { //Load image BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri(@"pack://application:,,,/Utilities.Common;component/Images/Other/M7_plant.gif", UriKind.RelativeOrAbsolute); bi.EndInit(); LoadImageDelegate loadImageDelegate = new LoadImageDelegate(ImageBehavior.SetAnimatedSource); Application.Current.Dispatcher.Invoke(loadImageDelegate, DispatcherPriority.Background, new object[] { imgWaiting, bi }); Login(); } }
/// <summary> /// 获取图片 /// </summary> /// <param name="url"></param> /// <param name="useCache">是否使用缓存</param> /// <param name="error">错误原因</param> /// <param name="loadImage">加载图片的方法</param> /// <returns></returns> public static Image GetImage(string url, bool useCache, out string error, LoadImageDelegate loadImage = null) { error = string.Empty; try { if (!url.IsValid()) { error = "无效的URL地址。"; return(null); } var lowerUrl = url.LowerCase(); if (useCache && Images.ContainsKey(lowerUrl)) { return(Images[lowerUrl]); } Image image = null; if (loadImage != null) { image = loadImage(url, out error); } else { image = LoadImage(url, out error); } if (image != null) { Images.AddOrUpdate(lowerUrl, image, (k, v) => v = image); } return(image); } catch (Exception ex) { error = ex.Message; return(null); } }
/// <summary> /// Handles LoadImage button event. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LoadImageClickEventHandler(object sender, System.EventArgs e) { if (loadedImageFileDialog.ShowDialog() == DialogResult.OK) { //disables the load button. loadImage.Enabled = false; //sets the PogressBar to minimum. loadedImageProgressBar.Value = loadedImageProgressBar.Minimum; if (image.Image != null) { image.Image = null; } //loads the image. LoadImageDelegate loadImageDelegate = new LoadImageDelegate(LoadImage); loadImageDelegate.BeginInvoke(null, null); } }
//static IInstalledFontProvider s_fontProvider; //public static void RegisterFontProvider(IInstalledFontProvider fontProvider) //{ // s_fontProvider = fontProvider; //} public static void RegisterImageLoader(LoadImageDelegate loadImgDel) { s_LoadImgDel = loadImgDel; }
/////////////////////////////////////////////////////////////// public void LoadImage(Image img) { if (isLogo) { return; } if (this.pbDisplay.InvokeRequired) { LoadImageDelegate d = new LoadImageDelegate(LoadImage); this.Invoke(d, new object[] { img }); } else { pbDisplay.Image = img; } //this.BeginInvoke(new LoadImageDelegate(LoadImage), new object[] { img }); //return; //} }
/// <summary> /// 获取图片 /// </summary> /// <param name="key"></param> /// <param name="useCache">是否使用缓存</param> /// <param name="error">错误原因</param> /// <param name="width"></param> /// <param name="height"></param> /// <param name="loadImage">加载图片的方法</param> /// <returns></returns> private static Bitmap GetBitmap(string key, bool useCache, out string error, int?width, int?height, LoadImageDelegate loadImage = null) { try { var image = GetImage(key, useCache, out error, loadImage); if (null == image) { return(null); } var bmp = new Bitmap(image); if ((!width.HasValue || width.Value == bmp.Width) && (!height.HasValue || height.Value == bmp.Height)) { return(bmp); } return(ResizeImage(bmp, width ?? bmp.Width, height ?? bmp.Height)); } catch (Exception ex) { error = ex.Message; return(null); } }
public static void SetLoadImageDelegate(LoadImageDelegate loadImg) { s_loadImg = loadImg; }