天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

使用MonoDevelop開發GTK#圖形界面

  Mono一直到現在的2.8已經完全可以勝任一些比較小的項目了,但相關的開發文檔與教程一直比較匱乏,中文材料更是屈指可數。雖然Mono與.NET很多類庫都是通用的,但Mono仍然有為數不少的擴充類庫,其中最重要的就是對于GTK二次封裝的GTK#圖形界面類庫了,目前想要開發原生的Mono圖形界面程序此類庫必不可少。在MonoDevelop里已經支持對于GTK#界面設計的直接拖放,有相關經驗的開發人員可以很快上手。

  Mono官方網站上也有一篇GTK#開發的入門文檔:Stetic GUI Designer,現在結合此教程簡要概述一下如何在MonoDevelop下使用GTK#。

  首先,我們需要做的就是創建一個工程……(這是一句廢話)。在MonoDevelop主界面選擇文件->New->Solution(話說目前MonoDevelop漢化工作還未徹底完成,菜單中中文夾英文……),在彈出來的對話框選擇C#->GTK#2.0工程。

=Stetic_Tutorial_01[1]

  輸入想建立的工程名,我們這里用“SteticTutorial”,然后點新建。再下面的一個對話框中根據自己的需求選擇,然后就可以點擊OK了。

  稍等一會之后,可以看到MonoDevelop已經幫我們做好了一個GTK#工程所需要做的最基本的工作了,點擊運行菜單里的運行按鈕或者工具欄上的齒輪按鈕就可以編譯執行當前工程了,因為我們現在什么也沒做,只是單純彈出了一個空白的窗體。

=Stetic_Tutorial_04[1]

  嗯嗯,很漂亮的界面……咳咳……

  現在我們要往這個界面中添加一些控件,雙擊工程目錄中的MainWindow.cs,這里可以看到窗體事件的代碼。注意看MonoDevelop的下方有兩個選項,目前選中的是“源代碼”,現在讓我們點擊“設計器”。

=Stetic_Tutorial_06[1]

  界面右側有隱藏的工具欄,其中有常用的控件,現在我們可以使用常用的拖放操作來畫窗體了,萬歲~

  好了,現在我們先不急,首先選中主窗體(MainWindow),然后再右側的屬性欄可以查看當前選中控件的屬性。

=Stetic_Tutorial_07[1]

  我們先把Window Tile一項改成需要的名字,這一項決定了窗體運行時標題欄上的文字。

  好了,剩下的就是往窗體中拖放控件。這里GTK#與WinForms有一些不同,WinForms下直接往窗體上拖放需要使用的控件就好,而基于GTK的GTK#,大部分控件都需要放在“容器”中。容器就是專門用來盛放控件的控件,在工具欄的第一部分全是這些容器。GTK#就是依賴這些容器來進行控件的定位的,學習過Swing或者QT的同學應該很容易理解。

  根據我們的需要,我們往主窗體拖放一個VBox。VBox是一個縱向排列的容器,將窗體分割為了一個個縱向的單元,可以往這些單元中添加控件或者其他容器來滿足需求。

=Stetic_Tutorial_10[1]

  默認的VBox有三欄,我們需要兩欄就足夠了。右擊第三個,選擇“Delete”。大部分窗體應用中菜單欄是不可或缺的一部分,所以我們首先要往窗體中VBox頂欄中添加一個MenuBar。VBox的一個很有意思的特性就是可以根據它其中的控件而改變容器的大小,所以當我們把MenuBar拖進第一欄的時候可以看到MenuBar并沒有變得像整個窗體一半大小那樣難看,而是自動將VBox縮成單行的寬度了。

=Stetic_Tutorial_11[1]

  接下來添加菜單選項就很簡單了,直接點擊“Click to create menu”就可以添加按鈕,還可以選擇按鈕的圖標。選中菜單,在屬性欄還可以設置Accelerator項來設定此菜單的快捷鍵。

=Stetic_Tutorial_12[1]

  建立完菜單后,MainWindow.cs的窗體下多了一個選項“行為”(英文叫Action),點開,看到我們之前在菜單欄中所有的定義。選中“Exit”,然后查看屬性欄,注意看屬性欄上方有一個“信號”(Signal)的選項看,選擇它。

=Stetic_Tutorial_14[1]

  在“Activated”項后面的Hander一欄點擊“Click here to add a new hander”,需要注意的是很多時候因為工具欄默認寬度有些窄而導致Handler項顯示不出來,我們可以拉長一下工具欄的長度。點擊后添加一個“OnExit”的事件,雙擊它進入源代碼編輯窗口。

=Stetic_Tutorial_16[1]

  這里添加一句代碼:

protected virtual void OnExit(object sender, System.EventArgs e)
{
Application.Quit();
}

NET技術使用MonoDevelop開發GTK#圖形界面,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 中文字幕专区高清在线观看 | 国产日韩成人内射视频 | 中文字幕乱码一区久久麻豆樱花 | 老头狠狠挺进小莹体内视频 | 久久这里都是精品 | 亚洲AV久久无码高潮喷水 | 日本xxxx8888| 特大巨黑人吊性xxxxgay | 欧美男女爱爱 | 国产欧美精品国产国产专区 | 台湾佬综合娱乐网 | 有码在线播放 | 狠狠色狠狠色88综合日日91 | 国产精品1区2区 | 国产精品美女久久久久AV超清 | 冰山高冷受被c到哭np双性 | 国产成人精品视频免费大全 | 欧美另类一区 | 国产在线观看的 | 黄色三级在线观看 | 久久精品久久精品 | 空姐内射出白浆10p 空姐厕所啪啪啪 | 女侠含泪巨臀迎合79 | 国产免费人成在线视频有码 | 黄色a一级视频 | 色婷婷欧美在线播放内射 | 亚洲天堂久久久 | 久久无码AV亚洲精品色午夜 | 久久99精品国产自在自线 | 武侠艳妇屈辱的张开双腿 | 国产中文字幕免费观看 | 久久足恋网 | 美女丝袜夹b | 国产精品免费一区二区三区视频 | 久久久久琪琪精品色 | 亚洲一区二区女搞男 | 欧美视频 亚洲视频 | 亚洲黄色免费在线观看 | 伊人影院蕉久 | 极品美女穴 | sihu国产精品永久免费 |