2011-04-28 129 views
0

我最近一直在尋找網絡的現有控制行爲像一個Web瀏覽器控制,我需要一些特定的功能。C#Winforms自定義WebBrowser控件需要

我還沒有找到一個有他們的人,所以我想在這裏留下一個問題,希望有人能指出我可以如何做到這一點,或者甚至給我一些關於如何從頭創建一個提示,這將最終成爲解決方案。

我需要一個控件,允許我預覽網頁,同時它允許我以編程方式編輯它。我不需要將HTML或文本直接寫入編輯器,但需要能夠單擊按鈕,並將特定的HTML代碼插入到文檔中,然後刷新預覽。

我還需要能夠捕獲控件上的點擊事件。例如,我想單擊控件上的特定位置並獲取位於鼠標位置的HTML元素。關於事件,我還需要能夠捕獲拖放,而且看起來在本地,瀏覽器控件也不支持這一點。

即使我嘗試了一些不同的控件,它們都沒有這些功能,或者允許我添加它們。所以,如果有人能指出我正確的方向,或者如果我錯誤地認爲它不能用任何現有的.NET控件完成,那麼我將非常感激。

非常感謝您的幫助。

回答

0

據我所知,沒有這樣的控制。而且,從頭開始編寫一個能夠正確呈現所有現代HTML/CSS的應用程序將是一項重大任務。

即使像Microsoft Expression這樣的產品,在顯示被編輯的HTML的方式上往往會有怪癖。

恐怕你的工作不適合你。

+0

是的,其實我認爲......這真的不容易創建與CSS呈現HTML控件。但是有幾個控件,似乎做了比瀏覽器控件更多的東西,我懷疑它們是從頭開始做的... – BlunT 2011-04-28 16:20:39

+0

@BlunT:那麼,有開源渲染引擎。所以你可以採取這樣的事情,並修改它以允許編輯。但是我認爲這或多或少是從頭開始的,因爲您需要使用原始源代碼而不是僅使用組件。 – 2011-04-28 16:26:23

1

兩個建議:

在瀏覽器的客戶端有DOM存取,讓你通過鼠標位置獲得HTML。看看這個頁面的這個示範:

http://www.permadi.com/tutorial/cssGetElementUnderMouse/index.html

想必你可以寫出來的javascript到你的HTML,將有鉤子它來提高你的父UI代碼的事件,可能又與瀏覽器的交互。從DOM獲取捕獲HTML元素名稱的東西,並將其傳遞迴用戶界面,將其作爲光標放入HTMLDocument中將是一個好的開始。

從那裏你可以擴展該模型來支持想法,如拖放或即時刷新或你有什麼。

我不知道任何開箱即用的東西。我看了一下,發現這個工具,這是免費的計費本身,並提供源,但我不知道它的許可證模型是什麼,所以聯繫作者

http://kompozer.net/features.php

+0

我沒有回答這個帖子,但kompozer似乎不是一個用於C#的組件,而是一個獨立的工具本身。我回來尋找,因爲ModelText讓我發瘋。當我嘗試添加一些HTML的時候,我收到了一些「意外」錯誤,這些錯誤並沒有給我提供很多關於如何解決問題的信息。 – BlunT 2011-06-14 15:37:27

0
+0

ModelText是我嘗試過的控件之一,並使用它們提供的示例進行測試。我已經試圖捕捉事件,但我不能,但現在我又試了一次,似乎至少得到了一些工作部分。我會深入一點,讓你知道它是否能夠做到我需要的一切。如果我有任何疑問,你有沒有使用這種控件的經驗,或知道我可以去討論的地方? – BlunT 2011-04-29 09:02:11

+0

我從來沒有用過它。我希望它的工作,因爲它聽起來可能是非常有用的。 – Nick 2011-04-29 15:27:59

+0

我在編程設置HTML內容時遇到了一些麻煩,但是當我單擊頁面時,我設法捕獲了HTML控件的事件。這是一個開始! – BlunT 2011-05-05 10:28:30

相關問題