这是两个输出示例:
http://imgur.com/a/ShdB0
第一个是CNN,看起来不错。没有闪光灯,但是出于我的目的,我并不在乎。
第二个页面是Font-Awesome速查表页面,位于:http://fortawesome.github.io/Font-Awesome/cheatsheet/
显然,这看起来不太好。
我感觉到有兼容性问题或时序问题,例如我可能没有在等待控件发出正确的完成信号。
以下是相关代码:
WebBrowser wb = new WebBrowser();
try
{
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wp_document_completed);
wb.Navigate(new Uri(m_board_url));
int n = 0;
while ((wb.ReadyState != WebBrowserReadyState.Complete) && (n < LOOPS_TO_WAIT))
{
// Also consider wb.IsBusy
log_message(Convert.ToString((object)wb.ReadyState));
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(15);
n++;
}
log_message(Convert.ToString((object)wb.ReadyState));
}
catch (Exception e)
{
log_message("exception!<br>" + e.ToString());
}
private void wp_document_completed(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser wb = (WebBrowser)sender;
wb.ClientSize = new Size(this.m_width, this.m_height);
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;
m_bitmap = new Bitmap(wb.Bounds.Width, wb.Bounds.Height);
wb.BringToFront();
wb.DrawToBitmap(m_bitmap, wb.Bounds);
m_bitmap = (Bitmap)m_bitmap.GetThumbnailImage(m_thumb_width, m_thumb_height, null, IntPtr.Zero);
m_bitmap_set = true;
}
我将不胜感激任何想法或建议。谢谢!
最佳答案
我也有问题。搜索了一段时间后,我找到了真正的解决方案。问题是webcontrol不能使用相对路径。通过为base64编码的字符串设置woff,我可以正常工作。看起来像这样:
@font-face {
font-family: 'Ico';
src: url('FontAwesome.eot') format('embedded-opentype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Ico';
src: url(data:application/x-font-woff;charset=utf-8;base64,<<base64_encoded_string>>) format('woff'), url('FontAwesome.ttf') format('truetype'), url('FontAwesome.svg#FontAwesome') format('svg');
font-weight: normal;
font-style: normal;
}
关于c# - 为什么我的ASP.NET中的WebBrowser控件无法正确呈现自定义图标字体?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25322472/