先看看下面的例項
這是應朋友之邀編寫的查詢職業技能鑑定考核的分數的軟體。看過我之前的博文的,可知這是借用我之前的網頁介面。
這個ui,如果用winform的控制項來實現,難度很高。
於是另闢蹊徑,用webbrowser控制項載入html網頁來實現軟體的ui。
這樣做的好處有:
1、用html編寫ui的難度要低得多,可以利用網上很多現成的ui庫實現絢麗的ui。本例就是利用bootstrap庫實現的介面ui。
2、實現前端ui和後台邏輯的分離。前端ui(html)只實現介面的繪製(可以簡單的對前端資料驗證),不需要負責後台邏輯以及資料的驗證。
缺點是:
介面實現是通過webbrowser控制項來呼叫系統核心的ie來實現。則介面的效果和ie的版本息息相關,高版本的ie沒什麼太大的差異,但是低版本的ie就會出現介面變形的情況。
這樣做還要解決前端ui和後台的通訊問題,即:
1、前端ui如何呼叫後台的方法
2、後台如何呼叫前端ui的方法來重新整理頁面
下面詳細講解一下
1、前端ui如何呼叫後台的方法
首先,新建乙個類,專門實現後台的邏輯。為了能讓前端呼叫,必須給類新增相應的申明,如下所示:
comvisible(
true)>
public
class
clsquery
private _web
aswebbrowser
public
subnew(w
aswebbrowser)
_web = w
_web.objectforscripting =
meendsub
public
sub query(id
asstring, subject
asstring)
endsubend
class
通過申明
comvisible(true)>
使得該類的公用方法能通過webbrowser控制項被呼叫,就是**中query方法
再通過 _web.objectforscripting = me 把該類和webbrowser控制項繫結,這樣前端ui就能呼叫該類的方法了。
在前端ui的html**中,通過window.external.query(id, subject); 呼叫後台的邏輯
<
script
>
function query()
else
} function createtable(t)
script
>
2、後台如何呼叫前端ui的方法來重新整理頁面
上面的前端ui**中,函式createtable是給後台邏輯呼叫來重新整理前端ui的
在後台**中用下面的**呼叫前端ui的函式來重新整理ui。
_web.document.invokescript("createtable", a)
至此,前端ui和後台邏輯的雙向通訊已經全部打通,實現了ui和邏輯層的分離。
同時,前端ui利用眾多的html、css、js類庫能實現很多絢麗的ui,不怕想不到,就怕做不到。
本文中的後台邏輯就不貼了,無外乎就是獲取資料、資料分析、格式化資料而已
多說一句,這個前端ui也可以用wpf實現,只是實現的難度要大很多。畢竟網上現成的wpf的前端ui庫不太好找。
Html實現簡單彈窗展示UI效果
在今天的專案中,實現了乙個很 神 的需求。要在unity打出的webgl中做乙個c 編輯器的功能,要求像vs那樣可以呼叫控制台除錯 我思來想去,感覺這個功能也只能模擬了,怎麼可能能實現這樣的功能。於是我在網上查詢資料,發現網上有很多線上c 除錯 於是我想可不可以用unity打出的html上展示這些c...
利用QtQuick實現UI的乙個Demo
利用qtquick實現ui的乙個demo demo主頁面 二級頁面分類電影集合,可滑動動態載入 第 介面,具體的電影資訊 2,介面的設計。這個demo介面設計很簡單,分為 介面,第一級介面是主頁,顯示電影型別。使用者選擇某乙個分類,進入第二級介面,攤開顯示該分類下的電影集合,當然這些電影相關資訊是已...
用HTML做軟體UI用到的的一些技術
做web開發的想把網頁做成應用程式的介面,開發應用程式的又想把程式介面做得和web一樣。本文介紹一下用html做軟體ui用到的的一些技術。其實html ui也不是什麼新鮮事了,norton antivirus從幾年前的版本就開始用了,vs.net2002中的開始頁也用了這個技術。from 方案一,適...