一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

使用MonoDevelop開發(fā)GTK#圖形界面

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

  Mono官方網(wǎng)站上也有一篇GTK#開發(fā)的入門文檔:Stetic GUI Designer,現(xiàn)在結(jié)合此教程簡要概述一下如何在MonoDevelop下使用GTK#。

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

=Stetic_Tutorial_01[1]

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

  稍等一會(huì)之后,可以看到MonoDevelop已經(jīng)幫我們做好了一個(gè)GTK#工程所需要做的最基本的工作了,點(diǎn)擊運(yùn)行菜單里的運(yùn)行按鈕或者工具欄上的齒輪按鈕就可以編譯執(zhí)行當(dāng)前工程了,因?yàn)槲覀儸F(xiàn)在什么也沒做,只是單純彈出了一個(gè)空白的窗體。

=Stetic_Tutorial_04[1]

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

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

=Stetic_Tutorial_06[1]

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

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

=Stetic_Tutorial_07[1]

  我們先把Window Tile一項(xiàng)改成需要的名字,這一項(xiàng)決定了窗體運(yùn)行時(shí)標(biāo)題欄上的文字。

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

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

=Stetic_Tutorial_10[1]

  默認(rèn)的VBox有三欄,我們需要兩欄就足夠了。右擊第三個(gè),選擇“Delete”。大部分窗體應(yīng)用中菜單欄是不可或缺的一部分,所以我們首先要往窗體中VBox頂欄中添加一個(gè)MenuBar。VBox的一個(gè)很有意思的特性就是可以根據(jù)它其中的控件而改變?nèi)萜鞯拇笮。援?dāng)我們把MenuBar拖進(jìn)第一欄的時(shí)候可以看到MenuBar并沒有變得像整個(gè)窗體一半大小那樣難看,而是自動(dòng)將VBox縮成單行的寬度了。

=Stetic_Tutorial_11[1]

  接下來添加菜單選項(xiàng)就很簡單了,直接點(diǎn)擊“Click to create menu”就可以添加按鈕,還可以選擇按鈕的圖標(biāo)。選中菜單,在屬性欄還可以設(shè)置Accelerator項(xiàng)來設(shè)定此菜單的快捷鍵。

=Stetic_Tutorial_12[1]

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

=Stetic_Tutorial_14[1]

  在“Activated”項(xiàng)后面的Hander一欄點(diǎn)擊“Click here to add a new hander”,需要注意的是很多時(shí)候因?yàn)楣ぞ邫谀J(rèn)寬度有些窄而導(dǎo)致Handler項(xiàng)顯示不出來,我們可以拉長一下工具欄的長度。點(diǎn)擊后添加一個(gè)“OnExit”的事件,雙擊它進(jìn)入源代碼編輯窗口。

=Stetic_Tutorial_16[1]

  這里添加一句代碼:

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

NET技術(shù)使用MonoDevelop開發(fā)GTK#圖形界面,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久老色鬼天天综合网观看 | 精品成人在线视频 | 精品久久久久久久久久中文字幕 | 欧美xxxx在线视频 | 国产小视频网址 | 亚洲欧美第一页 | 黄页网址大全免费观看美女 | 色老板影视 | 精品国产一区二区三区国产馆 | 亚洲国产成人综合 | 国产高清在线精品 | 精品中文字幕在线 | 久久精品久久精品 | 国产高清一区二区三区四区 | 91国内在线视频 | 久久青草社区 | 韩国毛片免费 | 人人澡人人模人人添 | 色综合色狠狠天天久久婷婷基地 | 精品精拍国产日韩26u | 国内精品哆啪啪 | 四虎国产精品永久一区 | 国产综合视频在线观看一区 | 在线播放69热精品视频 | 一级毛片国产真人永久在线 | 久久午夜精品2区 | 色综合天天操 | 亚洲午夜小视频 | 91精品国产91久久久久 | 精品无人区一区二区三区 | 精品日本亚洲一区二区三区 | 国产成人精品三级 | 亚洲国产精品日韩一线满 | 国产精品极品美女自在线看免费一区二区 | 91网站免费在线观看 | 国产情侣91 | 午夜影院日韩 | 亚洲免费三区 | 国产久热香蕉在线观看 | 国产激情视频在线观看 | 欧美人与禽zoz0性伦交 |