我在.NET中创建了一个程序来编辑HTML代码并实时查看它,并且它工作得很好,但是有一个问题:因为我使用了WebBrowser控件,所以它不适用于新的CSS,例如,如果我尝试使用border-radius,它就无法工作。
我已经搜索了,我找到了一种方法来通过编辑注册表中的密钥来解决它,但这样它只能在我的计算机上工作,我需要这个程序甚至可以在其他我没有的计算机上运行有权运行注册表。
我想改变控制,我尝试了webkit控件,CSS3似乎有用,但是有一个新问题。
我通过在richtextbox textchanged事件上实时更改HTML来显示页面,因此页面没有真正加载,外部资源作为图像和其他东西不起作用,在WebBrowser中修复了问题通过搜索所有img标签并更改其属性,例如我将“image.png”更改为“file:/// C:\ pathoftheHTMLfile \ image.png”。
在WebBrowser中运行良好,但它在WebKit上不起作用...... 我真的不知道该怎么做......
我很快就会尝试使用Gecko浏览器,但我想知道是否有人对此有所了解:
感谢您的帮助,我相信您会给我^ _ ^
更新 我发现在WebKitBrowser中图像的更改是正确的,问题是它似乎只能加载来自互联网的图像,而不是本地图像,这似乎是webkit控件的一个已知问题 Opening local files in Webkit .NET
但没有人以一种好的方式回答这个问题......
更新2:我尝试按照Noseratio在评论中说的做法(我的代码是这样)
Private Sub SetBrowserEmulationMode()
Dim appName As String = System.IO.Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName)
Using key = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree)
key.SetValue(appName, getBrowserEmulationMode, RegistryValueKind.DWord)
End Using
End Sub
Private Function getBrowserEmulationMode() As UInt32
Dim browserVersion As Integer = 7
Using ieKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Internet Explorer", RegistryKeyPermissionCheck.ReadSubTree, System.Security.AccessControl.RegistryRights.QueryValues)
Dim version = ieKey.GetValue("svcVersion")
If version Is Nothing Then
version = ieKey.GetValue("Version")
If version Is Nothing Then
Throw New ApplicationException("Microsoft Internet Explorer is required!")
End If
End If
Integer.TryParse(version.ToString().Split("."c)(0), browserVersion)
End Using
Dim mode As UInt32 = 10000
Select Case browserVersion
Case 7
mode = 7000
Exit Select
Case 8
mode = 8000
Exit Select
Case 9
mode = 9000
Exit Select
End Select
Return mode
End Function
但是......即使正确创建了密钥,也没有任何改变。 我正在尝试一个简单的页面,如:
<html>
<head>
<style>
div{border:1px solid black; height:200px;border-radius:10px;}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
但是边框不是圆形的,即使我保存并用IE打开它也是正确的圆形
更新3:它已经在update2工作,我是一个愚蠢的XD