private void DoSearch(string s) { WebResponse response = null; string can = ""; foreach (char ch in s) { int hex = ch; can += "%" + Convert.ToString(hex, 16); } try { // 使用 KingDraw 的 API 将 SMILES 转换为图片 response = WebRequest.Create("http://baike.kingdraw.com/api/smilesToImage?smiles=" + can).GetResponse(); } catch (Exception) { Height = 85; this.FindControl <Avalonia.Controls.Image>("img").IsVisible = false; this.FindControl <Button>("save").IsVisible = false; this.FindControl <TextBlock>("err").IsVisible = false; this.FindControl <TextBlock>("nerr").IsVisible = true; return; } try { Stream stream = response.GetResponseStream(); System.Drawing.Image image = System.Drawing.Image.FromStream(stream); bitmap = new Bitmap(image); nbitmap = (Bitmap)bitmap.Clone(); if (image.Width > Width - 20) { bitmap = InfoWindow.ZoomImage(bitmap, (int)(image.Height * (Width - 20) / image.Width), (int)(Width - 20)); } Color clr; for (int x = 0; x < bitmap.Width; ++x) { for (int y = 0; y < bitmap.Height; ++y) { clr = bitmap.GetPixel(x, y); bitmap.SetPixel(x, y, Color.FromArgb(Math.Max(40, 255 - clr.R), Math.Max(40, 255 - clr.G), Math.Max(40, 255 - clr.B))); } } Stream str = new MemoryStream(); bitmap.Save(str, ImageFormat.Png); str.Position = 0; Avalonia.Media.Imaging.Bitmap bitmap1 = new Avalonia.Media.Imaging.Bitmap(str); this.FindControl <Avalonia.Controls.Image>("img").Source = bitmap1; Height = 50; Height += bitmap1.Size.Height + 50; this.FindControl <Avalonia.Controls.Image>("img").Height = bitmap1.Size.Height; this.FindControl <Avalonia.Controls.Image>("img").Width = bitmap1.Size.Width; this.FindControl <Avalonia.Controls.Image>("img").IsVisible = true; this.FindControl <Button>("save").IsVisible = true; this.FindControl <TextBlock>("err").IsVisible = false; this.FindControl <TextBlock>("nerr").IsVisible = false; } catch (Exception) { Height = 85; this.FindControl <Avalonia.Controls.Image>("img").IsVisible = false; this.FindControl <Button>("save").IsVisible = false; this.FindControl <TextBlock>("err").IsVisible = true; this.FindControl <TextBlock>("nerr").IsVisible = false; } }