版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、DSkin 入門教程和注意事項1.通過授權(quán)客戶端更新和下載dll,包含了以下4個文件凰 DSkin.Design.dll凰 DSlcin.dll DSkin.XMLMl更新文肖txtDSkin.dll 是主要的控件庫DSkin.Design.dll 是開發(fā)和設(shè)計的支持庫,如果沒有引用,里面大部分控件將不能在設(shè)計器里正常使用,而且會 報未授權(quán),發(fā)布的時候不需要該 dll。DSkin.xml 是 VS 的智能提示文件,對 DSkin.dll 里面的方法屬性等提供提示說明一致,這樣不容易出問題。更新文檔.txt是DSkin的更新日志,可以查看DSkin更新的功能和控件以及修復(fù)的BUG一致,這樣不容易
2、出問題。為.net版本,根據(jù)項目需求下載相應(yīng)的版本,.net版本盡可能2.0 版本的是包含 Linq 的,使用的時候可以加上 using System.Linq;2.使用的時候需要引用DSkin.dll和DSkin.Design.dll,另外DSkin.xml需要和DSkin.dll放在同一個目錄,一般是Debug 目錄。把DSkin里面的控件添加工具箱,可以新建個名稱為DSkin的選項卡,直接把DSkin.dll拖到工具箱里面就可以了。J J 引用DSkinDSkin.Desig n窗體的使用:添加窗體,繼承 DSkinFormI*1J-添加窗體,繼承 DSkinFormI*1J-using
3、 DSkin.Forms;LJI*LJFl-J J1.E namespace tEst3個引用public partialclass Forml : DSkinForm注意: DSkinForm Layered 模式下支持 注意: DSkinForm Layered 模式下支持 DSkin 的大部分控件,以及其他一部分帶有 Paint 事件的控件,把那些控件放在 ControlHost 里面。ControlHost不能相互嵌套,只能一層。因為ControlHost是一個獨立的窗體,添加之后會在控件最頂層,盡 可能的少用或者不用 ControlHost,如果你不需要透明效果和動畫效果,你可以直接
4、把窗體的IsLayeredWindowForm改成False,關(guān)閉Layered模 式,這樣窗體就可以支持其他普通控件了,可以不需要ControlHostLayered 模式是指 DSkinForm Layered 模式是指 DSkinForm 的 IsLayeredWindowForm 為 trueTru已in rlILayered模式的優(yōu)勢:更高的呈現(xiàn)效率,更好的渲染效果,不會閃爍,支持窗體的任意透明,支持窗體動畫。QQ、迅雷、酷狗等等都是采用這種方式呈現(xiàn)的缺點:不能很好的支持普通控件做異形窗體,在Layered模式下,把背景色設(shè)置成透明色Back 匚 cilor口,然后設(shè)置透明的PNG圖
5、片為背景就可以了如果要將窗體當(dāng)成子窗體添加到其他窗體或者控件里面需要將該子窗體的IsLayeredWindowForm改成False, 否則會報創(chuàng)建句柄錯誤。DSkin 里的 DSkinDataGridView做異形窗體,在Layered模式下,把背景色設(shè)置成透明色Back 匚 cilor口,然后設(shè)置透明的PNG圖片為背景就可以了如果要將窗體當(dāng)成子窗體添加到其他窗體或者控件里面需要將該子窗體的IsLayeredWindowForm改成False, 否則會報創(chuàng)建句柄錯誤。DSkin 里的 DSkinDataGridView、DSkinSplitPanel、DSkinChatRichTextBox
6、、DCSkinComboBox 不支持 Layered 模式4常用控件的主要事項:DSkinButton、 DuiButton:w0-n.uiAdaptlmageIsPure ColorTruei一i適應(yīng)圖片大小,這個時候控件尺寸由Normallmage的圖片尺寸決定,|*3FalseU U ILH7I IU LJH LJCI I LJLI IIButton Style是否為純色,默認(rèn)會繪制一層樣式層。可以設(shè)置按鈕風(fēng)格DSkinListBox、 DuiListBox:添加完項目之后要調(diào)用LayoutContent();方法,現(xiàn)在一般可以不需要手動調(diào)用了項目布局的位置偏移,可以通過設(shè)置項目的Ma
7、rgin屬性來控制啟用多行多列的時候,項目布局由ItemSize屬性決定,如果是浮動布局可以不需要設(shè)置ItemSizenems田KemSize1001 100DSkinListBox綁定數(shù)據(jù)源和設(shè)置模板/設(shè)置模板dSkinListBoxl.Template = typeof(DSkinListitemTemplate); dSkinListBox1.DataSource = data; /設(shè)置數(shù)據(jù)源模板設(shè)計為虛擬控件設(shè)計,繼承DSk in Lis tIt emTempla tenems田KemSize1001 100DSkinListBox綁定數(shù)據(jù)源和設(shè)置模板/設(shè)置模板dSkinListBox
8、l.Template = typeof(DSkinListitemTemplate); dSkinListBox1.DataSource = data; /設(shè)置數(shù)據(jù)源模板設(shè)計為虛擬控件設(shè)計,繼承DSk in Lis tIt emTempla te/通過重寫On Load方法或者注冊Load事件來設(shè)置綁定值protected override void OnLoad(EventArgs e)base.OnLoad(e);duiPic tureBox1.Image = Image) this.Eval(字段名 1); duiLabel1.Tex t =this.Eval(字段名 2).ToS tr
9、in g();DSkinListBox、DuiListBox 的選擇模式,可以設(shè)置為無,單選和多選FlaatTopTrueRadioSelection Mo de項目選擇模式SelectionMode啟用選擇之后設(shè)置選擇效果,綁定 ListBox 的 ItemSelectedChanged 事件,通過這個事件來設(shè)置項目的效果Paint日選擇行為dSkinListBoxIvItemSelectedChanged日雜項DSkinCombobox、DuiCombobox DEkinStringToltems口 n iiM一亠何生*將每行文字轉(zhuǎn)換成一個項目AutoDrawSelecedltem選中的項
10、目顯示方式,F(xiàn)alse是文本顯示方式,True的時候是控件圖像顯示方式添加的 Item 是虛擬控件DSkinTreeView添加節(jié)點for (int i = 0; i 100; i+)DSkinTreeViewNode dNode = new DSkinTreeViewNode(); dNode.Tex t =根節(jié)點+ i.ToS tri ng();dNode.IsCus tom =true;/啟用自定義樣式dNode.ShowCheckBox =false;dSkinTreeViewl.Nodes.Add(dNode);for (int j = 0; j 10; j+)DSkinTreeVi
11、ewNode nodenode = new DSkinTreeViewNode();nodeno de.Tex t 子節(jié)點+ j.ToS trin g();dNode.Nodes.Add(nodenode);for (int k = 0; k new DSkinGridListColumn Name = a, Width = 50 ).ToArray();綁定數(shù)據(jù)源/設(shè)置模板,模板是繼承 DSkin.Controls.DSkinGirdListCellTemplatedSkinGridListl.Columns2.CellTemplate = typeof(Component2);object
12、 data = new object10000;Image bt = Properties.Resources.bt;for (int i = 0; i data.Length; i+)datai =new 狀態(tài)=23狀態(tài),圖片=bt,姓名=24dfs + i, ID = i ;dSkinGridList1.DataSource = data;/綁定數(shù)據(jù)源,數(shù)據(jù)源可以是 DataTable, DataSet. List 等 等,沒有設(shè)置模板的列需要設(shè)置 DataPropertyName 屬性來關(guān)聯(lián)綁定的字段名更新數(shù)據(jù)源的時候,如果數(shù)據(jù)源對象沒有變,直接調(diào)用DataBind()就可以更新數(shù)據(jù)顯示
13、了手動添加數(shù)據(jù)需要using DSkin.Con tr ols;for (int i = 0; i 500; i+)dSkinGridList1 .Rows.AddRow(i, asda + i, hgsf, kjt);自定義分頁數(shù)據(jù)private void dSkinGridList1_PageIndexChanged(object sender, EventArgs e)/CustomPage自定義分頁為true, RowCount可以自定義,設(shè)置總數(shù)據(jù)量。在PageIndexChanged事件可以通過添加 Row或者重新綁定數(shù)據(jù)源來加載對應(yīng)頁面的數(shù)據(jù)/1、添加Row數(shù)據(jù)dSkinGrid
14、Lis t1 .Rows.Clear();for (int i = 0; i 100; i+)dSkinGridLis t1.Rows.AddRow(dSkinGridLis t1.PageIndex,測試數(shù)據(jù),231, i);/2、綁定對應(yīng)頁面的數(shù)據(jù)Image bt = Prope rt ies.Resources.b t;Listobjectdata = new Listobject();for (int i = 0; i c.TagName = img).ElementAt(0);a.MouseUp += (s, E) =/綁定事件Console.WriteLine(MouseUp +
15、E.Location);DuiBrowser、 DSkinBrowser使用瀏覽器控件需要在群里下載Wke.dll, plugins目錄的NPSWF32.dll是Flash插件,如果不使用Flash可以刪除【插件】用忍861頁鬥力pduiBrowser1.InvokeJS(alert(aaa);/調(diào)用 JS 觸發(fā) AlertBox事件JS調(diào)用c#,建議把委托定義成全局的,防止被回收jsNativeFunction js = new jsNativeFunction(a =MessageBox.Sho w(n ewJsValue(a, 0).ToS trin g();/獲取 JS 調(diào)用C# 的參
16、數(shù),后面的數(shù)字是 參數(shù)索引return JsValue.JsString(a,測試);/JS調(diào)用C#方法之后的返回值duiBrowser1.JsBindFunmsgBox, js, 1);/綁定 C#的方法,msgBox 是方法名,數(shù)字為綁定 到JS里的方法參數(shù)數(shù)量網(wǎng)頁里只要用JS調(diào)用msgBox( aa123測試);/這樣就可以回調(diào)調(diào)用C#的方法了新版的是采用Ewe內(nèi)核的,群里下載Ewe的dll,比之前的wke更加完善一些。使用方式差不多。不過提供更加便 捷的JS調(diào)用C#的方法I v1 I y I jprivate void WkeFormLoad(object senderj EventA
17、rgs e)dSkinBrowserlGloba10bject = this;dSkinBrowserl Lc bcin. -w-rrrrrr!* object DSkin.Controls.DSkinBrowser.GlobalObject get; 全局對象用來做兀dSkinBrowserl Lc bcin. -w-rrrrrr!先設(shè)置調(diào)用方法的對象JSFunction0個引用public string Test(string msgj int n)return msg + n;|JSFunction0個引用public double Testl(double msg)return msg
18、;定義js要調(diào)用的C#的方法,DSkin.DirectUI.JSFunction特性加到要調(diào)用的方法上;參數(shù)和返回值要對應(yīng);最后網(wǎng)頁中的JS直接調(diào)用Test(哈哈123test,1000)就可以回調(diào)給對應(yīng)的C#方法了MessageBox.Show(dSkinBrcwserl,InvokeS(Test(哈哈巳st ,1000) ,ToString();MessageBoxShow(dSkinBrowserl.Invoke3S(Testl(123.2325).ToDoubleQ ToString()C#調(diào)用JS, JS調(diào)用C#,獲取返回值,彈出窗體顯示結(jié)果JS的Alert彈窗那些需要通過Alert
19、Box這些事件來捕獲,自己定義彈窗。否則沒有彈窗顯示讀取程序內(nèi)嵌網(wǎng)頁,和WebUI實現(xiàn)方式一樣,看下面的釆用Html開發(fā)桌面程序就是添加程序集,網(wǎng)頁設(shè)置為內(nèi)嵌資源,設(shè)置 URL注意:XP系統(tǒng)上無法使用flash插件瀏覽器控件不建議加到用戶控件里。如果要加,請寫代碼添加,判斷DesignMode。設(shè)計模式下不要創(chuàng)建瀏覽器控件。否則會報無法加載dll的問題DSkinChart綁定數(shù)據(jù)源,數(shù)據(jù)源可以是集合、數(shù)組、DataTable、DataSetListdoubledata = new Listdouble();/一條數(shù)據(jù)Random r = new Random();for (int i = 0;
20、 i 7; i+)dat a.Add(r.Nex t();dSkinChart1 .DataSource = data;多條數(shù)據(jù),可以用二維數(shù)組或者DataTable、DataSetArrayList ChartData = new ArrayList2;ChartData0 = new ArrayList();Random r = new Random();for (int i = 0; i 7; i+)Cha rt Da ta0.Add(r.Nex t();ChartData1 = new ArrayList();for (int i = 0; i dSkinGroupBoxl = new
21、 DSkin.ControlsDSkinGroupBoxO;I(SystemComponentModel.ISupportInitialize)(thisdSkinComboBox4.ini將 DSKinGroupBox 的代碼移到其他控件下面,然后再隨便改一下設(shè)計器的控件,讓設(shè)計器重新整理生成的代碼 這樣添加到DSKinGroupBox的控件設(shè)置的屬性就有效果了。5虛擬控件的使用:可以通過實體控件的智能任務(wù)卡添加,或者DUIControls屬性里添加也 uuiba 匚 KgDu 門 dike UbKin.uireccui.uuiDUI Controls傑合).DUI Controls I I
22、J r ILi I口 e 廠ILd IT-a I ir a.DuiBaseControl 集第矚器成員(M):Q duiTextBoxIDuiBaseConUolDu i LabelDu 成員(M):Q duiTextBoxIDuiBaseConUolDu i LabelDu i Button DuiPictureBox DuiCheckBox Du i Rad io Button DuiComboBox DuiTextBoxDuiScrollBarR)VDUI子控件集合Controls傑合)AV布局AnchorTopLeftDockFillLo ratio n0. 0Margina a a
23、oSize487,盟97行為EnabledTrueIVIou5&EventBubit TrueVisibleTrue7iSH(Name)duiTextBoxIDesignModeCanl FalseDesignModeCanl FalseVduiTextBoxI 屬性(P):屋孰I ADuiProgressBarDuiPieDuiT ackBar DuiListBox DuiGraphics DuiHtmlLabel虛擬控件支持單個組件復(fù)制和粘貼,選中需要復(fù)制的虛擬控件,Ctrl+C,然后點擊選中目標(biāo)控件,Ctrl+V就可 以把虛擬控件復(fù)制到目標(biāo)控件了。需要注意暫時還不能同時復(fù)制控件內(nèi)部的虛擬
24、控件,復(fù)制過去的虛擬控件 位置不變,另外需要支持虛擬控件設(shè)計模式的控件才可以作為目標(biāo)控件粘貼。否則粘貼之后虛擬控件的Parent 屬性為Null,需要手動設(shè)置Parent屬性,才可以轉(zhuǎn)移到目標(biāo)控件。如果通過設(shè)計器虛擬控件集合添加的虛擬控件沒有添加到界面上,你可以在屬性欄里的組件下拉框里找,如 果有的話,設(shè)置該虛擬控件的Parent屬性到你需要添加到的控件里,如果不能設(shè)置,你重新打開設(shè)計器就可 以了DSkinBaseControl 上的虛擬控件才可以在設(shè)計器上拖拽虛擬控件支持多選,用Ctrl鍵多選,可以用來同時設(shè)置多個控件的屬性duiTextBoxI FalseDesignModeCanResi
25、ze False duiTextBoxI FalseDesignModeCanResize False DesignMode 匚目 n已but TrueNameDesi gnh/lod eCa n IV1 ove虛擬控件支持文檔設(shè)計模式,右鍵添加組件,把繼承類改成DuiBaseControl或者其他虛擬控件就可以了。 這樣虛擬控件就像用戶控件一樣,可以直接設(shè)計,可以往里面添加虛擬控件和組件。做列表項目什么的都很 方便。namespace 1:已51:2個引用publit pmrtie丄 class 匚ornponentl : DSkin.DirectUI. ZJuiBaseControl虛擬控
26、件集合支持 Linq 查詢和 Lambda 表達(dá)式查詢l.dSki nBmsetZo rrtro.:l. DUI 匚 on trals. FindG FindAllG Findindex0 FindLastO FindLastlndex 咗 FirstoFirstQrDefaulto瞇i ForEachoP0 GetEnumerator址Query 擴(kuò)展方法需要添加 using DSkin.DirectUI;查詢dSki nBaseCo nt roll里面的所有DuiLabel并執(zhí)行動畫dSkinBaseControl1.InnerDuiControl.Query(l = true).DoEf
27、fect(0, 100, 500, Left, (p) = );使用DoEffect來做簡單的動畫DoEffect是封裝了定時器的方法回調(diào),using DSkin.DirectUI;添加這個命名空間之后會有多個 DoEffect方法重載/自定義特效Opacity = 0;Rectangle rect = Screen.PrimaryScreen.WorkingArea;int top = (rect.Height - Height) / 2;this.Location = new Point(rect.Width - Width, top);int centerLeft = (rect.Wid
28、th - Width) / 2;this.DoEffect()=if (Left centerLeft + 4)Opacity = 1 - 1.0 * (Left - centerLeft) / (rect.Width - Width - centerLeft); Left -= (Left - centerLeft) / 5);ret urn t rue;/繼續(xù)動畫執(zhí)行Opacity = 1;ret urn false;/停止動畫執(zhí)行);虛擬控件的SendTask方法的使用在使用自定義模板的時候經(jīng)常會遇到需要處理模板的虛擬控件的事件,如果采用外部遍歷虛擬控件來綁定事 件,會感覺很麻煩,所以加
29、增加了這個SendTask方法。使用的時候很簡單,只要需要在模板里綁定對應(yīng)的處理事件,里面調(diào)用SendTask方法,把任務(wù)發(fā)送出去,然 后通過對應(yīng)的承載的實體控件或者父級虛擬控件的AcceptTask的事件來處理就行了。比如:這個是一個 DSkinGridList 比如:這個是一個 DSkinGridList 的 Cell 模板,我需要的就是 DuiCheckBox 被選中的時候,彈出一個消息框,然后我就 在這個模板里綁定這個虛擬控件的 CheckedChanged 事件凰性 xduiCheckBoxI 凰性 xduiCheckBoxI DSki n. Di rectU I. Du iCh e
30、ckB c -1個引用pirivatE void duiCheckBoxl_CheckedChanged(object senderj Even呂s e)if (duiCheckBox1Checked)this. SendTask( r測試任務(wù));Checked Cha img edduiCheckBoxIC 司玉dSkinGridLis.倉cceptTask += (s E)=fJiessageBox. Show(E. TaskName);通過這個事件來發(fā)送任務(wù)。然后,我們需要接收這個任務(wù),;l通過這個事件來發(fā)送任務(wù)。然后,我們需要接收這個任務(wù),可以在窗體的Load事件里綁定承載這個Cell
31、模板的實體控件的AcceptTask事件,通過這個事件來接受剛 才定義在Cell模板里的任務(wù),接收到了之后,執(zhí)行該任務(wù)。8 采用Html開發(fā)桌面程序新版WebUI開發(fā)模式點這里用 DSkin 的 Html 開發(fā)桌面的優(yōu)勢:1支持 DPI 縮放,不會出現(xiàn)界面模糊和界面過小的問題有海量的界面模板資源,可以支持J Query, Bootstrap等等插件只要一點點Html基礎(chǔ)的就行了,開發(fā)界面很簡單,易上手支持JS和C#相互調(diào)用附加的dll 小,才3M,比起用Cef那個小太多了缺點:不能完全兼容Html5和CSS3,畢竟dll體積那么小,不能包含所有瀏覽器的功能,顯示速度比不上瀏覽 器。內(nèi)存占用,比
32、普通的桌面程序稍微耗內(nèi)存。開發(fā)準(zhǔn)備:項目右鍵添加窗體,改繼承,改成DSkin.Forms.WebUIFormH I J I 7 Upublic partial class WebUITest : DSkin.Fo項目右鍵,添加放Html項目右鍵,添加放Html文件的目錄,比如View群里下載WebUI的模板文件,放到這個View目錄里,右鍵修改這個模板文件的屬性index.html文件雇性日咼圾真制到輸出目錄桶制嵌入的資源白寺WT目生成操作,改成嵌入的資源,所有相關(guān)的Html,圖片還是CSS,JS文件都要改這個屬性打開那個index.html,在ui-content這個DIV里面加入你要的內(nèi)容
33、,然后保存 !-內(nèi)容開始-M 試在之前添加的窗體的構(gòu)造函數(shù)里設(shè)置資源的鏈接,file:/要3個斜杠4個引用public partial class WebUITest : DSkin.Forms.WebUIForm2個引用public WebUITest()設(shè)置網(wǎng)頁鏈接,需要代丄/開頭然后程序集名稱/若干個目錄。/文件名this.Url =吁訂電:/tEst/iEVj/inclExhtinT;最后,設(shè)置剛才的窗體為主窗體,然后添加資源,生成就可以運行了static class Program/ summary/應(yīng)用程序的主入口點。/ STAThreac0個引用static void Main(
34、)Applicatior * EnableVisualStylesf);Application.SetCompatibleTextRenderingDefaulfalse)設(shè)置網(wǎng)頁資源所在的程序集”當(dāng)前設(shè)置的是當(dāng)前的程序集.鍵值是程序集名稱 /如果網(wǎng)頁資源是在其他項目或者口1里,要用Assembly加載,添加到這里Ewe Co re + ResoureAsseiiblys + AcIcICtest, System.Reflection.Assembly. Get Execut ingAssembly(); Application,Run(new WebUITest()j注意事項:網(wǎng)頁里的資源鏈
35、接都要用相對路徑,當(dāng)然也可以是http開頭的網(wǎng)絡(luò)資源,比如Home測試頁面DPI的支持,需要項目設(shè)置配置* PropertiesDPI的支持,需要項目設(shè)置配置* Propertiesq_l_*弋 dpp * iui i i JLg LpT寸li icnu JLehM jli luuvtfrui hiii i JLgi lup jlmu luixcs- jl 上 jlii 總冃 糾_口 丄八 li ue48505152application xmlns=urn:505152dpiAware xm.lns = http: /schemas*miurosoft*coin/5f/2005/Winclc
36、iws5ettingsxtrue/dpiAware ii 11 ks ii Ih IT 11-namespace test.Pages11個引用class test : DSkin,Forms.WebUIPage0個引用public test(WebUIForm ownerIntPtr string url : base(ownerj jSj url)DSkin,DirectUI.JSFunction0個引用public void TestQ3個引用protected override void OnDocumentReady(DocumentReadyEventArgs e)/e* FrME
37、ObjHt = this;這個要注釋掉 不能有多個相同名稱的框架頁面文件,比如不同目錄里都有index.html而且都用框架來加載$C#dxc).click(function () Test陽ync就是頁面類里的方法名稱頁面類里需要定義一吐陽yncKJ方法。參數(shù)是一字符串 GetAsyncData(TestAsyncj 參數(shù),function (data) Msg(data););l);/III/III/III/異步獲取數(shù)據(jù)的測試方法,異步方法都要定義一個字符串參數(shù)和字符串返回值,該方法執(zhí)行在線程池中,操作控件記得用Safelnvoke eturns/returnso個引用public str
38、ing TestAsync(string parameters)System Threading.Thread.Sleep(1000); return 結(jié)果正常:+ parameters;x封裝好了一個異步獲取數(shù)據(jù)的方法,簡化JS里異步獲取數(shù)據(jù)的操作 新的異步調(diào)用方法:C#方法定義和之前同步方法一樣/ /測試異步調(diào)用/ /summa/ 這里的回調(diào)參數(shù)a就是上面C#方法的返回值同步調(diào)用i onclick=console.log(TestAsync(asd, 1223)注意:異步調(diào)用C#方法,如果C#方法里有操作UI的,需要委托到主線程新版WebUI開發(fā)模式新版開發(fā)模式采用MiniBlink內(nèi)核,
39、這個內(nèi)核更新,功能更完善,而且提供開發(fā)者功能,內(nèi)核還在更新中,而且是開源項目: HYPERLINK /weolar/miniblink49 /weolar/miniblink49 女口果是內(nèi)核方面的問題可以至H HYPERLINK / / 提問mb.dll 群里下載 開始開發(fā) 新建 X86 的 Winform 項目,窗體繼承改成 DSkin.Forms.MiniBlinkForm4個引用public partial class Forml : DSkin,Forms,MiniBlinkFcrm2個引用public Forml(string url) : base(url)|Initialize
40、Component();Size = new Size(int)(1000 * ZoomFactor), (int)(60 * ZoomFactor);窗體尺寸設(shè)置和舊版的一樣,期望大小乘以ZoomFactor,是為了適應(yīng)DPI縮放;app.manifestForml.csog app.manifestForml.csog ri.csindex.htmlcc3940414243444546474849505152!-! - - v/compatibility-1!-指巫該座用程序可以感0 DPI且Windows在DPI較高時將不會馮具進(jìn)行-1自動縮放。Windows Presentation
41、Foundation (WPF)應(yīng)用程序自動DPI ,無需 逓睪加入。逓睪加入此設(shè)置的Windows窗體應(yīng)用程序(目標(biāo)潑定為.NET Framework 4*6 還應(yīng) 在具 app.config 中將EnableWindowsFarmsHighDpiAirtciResizing設(shè)置設(shè)置為trueo - application xmlns=urn: schemas-mic:rasoft-cani:日 dpiAware xnnlns=http: /schemas*mic:rasaft2005AJindowsSettingsrue/dpiAware 這段DPI代碼取消注釋,如果沒有app.manif
42、est,可以在項目屬性里,點擊啟用,再取消啟用就有這個文件了Debug Any CPUDebug Any CPU生成事牛Jg鑒空空的代碼訪問安全權(quán)限。工調(diào)試啟用匚1泳5安全設(shè)置資源::這是主全可信的應(yīng)用程序街服務(wù)::::這是部分可信的應(yīng)用程序設(shè)置ClickOnce安全權(quán)限M謹(jǐn)從中安裝應(yīng)用程序的區(qū)域辺:弓I用路徑M謹(jǐn)從中安裝應(yīng)用程序的區(qū)域辺:using System.Collections.Generic;using System.Linq;using System.WindowsForms;using DSkin.DirectUI;namespace WebUIDemo0個引用static c
43、lass ProgramZ/ /應(yīng)用程序的主入口點。III STAThread0個引用 static void Main()Application.EnableVisualStyles();ApplicationSetCompatibleTextRenderingDefault(false);/添加程序集網(wǎng)頁資源,程序集名稱,程序集MiniblinkPInvoke.ResourceAssemblys.Add(WebUIDemo, System.Reflection.Assembly.GetExecutingAssembly(); /綁定的頁面Page的命名空間MiniblinkPInvoke.
44、PageNameSpace = WebUIDemo.Pages; Application.Run(new Forml(res:/WebUIDemo/Views/indexhtml);印解決方髦WebUID已mQ(1個項目)J 空 WebUIDemoh PropertiesP 引用 門 bin0 jsb chiJPagesc dashbaard.esb index.es程序集里的資源Url寫法是res:/開頭的不是之前的 HYPERLINK file:/res:/WebUIDemo/Views/index.html res:/ 程序集名/若干文件夾/文件名區(qū)分大小寫文件屬性要改成嵌入的資源丿 Z
45、 WebUIDemo* Properties一.引用rj binJI性index.html文件雇性1 A日咼級復(fù)制到輸出目泉穆制生成操件|嵌A的資源E自具白手酉目蟲 jsi:j obj丿 R Pagesb dashbaard.esc index.es/ 1 View&index.html 自 index.html 自 Form1.csJ 空 WebUIDema*Propertiesb引用:d binb js:J obj丿 Pages ctt dashboard.es 矽 index.es/ Viewsmstp_48_realmindex.htmlmstp_48_realmindex.html
46、曰 Form1.csA“綁定的頁面Page的命名空間Html頁面和C#類綁定,C#類代碼就寫在之前設(shè)置的頁面和類的名稱要一樣,Html在哪個文件夾無所謂,區(qū)分大小寫,支持主頁面和框架頁面的綁定。舊版的不支持 主頁面綁定 類繼承 DSkin.Forms.MiniBlinkPage/ summary/暫時只支持簡單屬性的雙向綁定,以及C#集合MiniBlinksllection更新到UT的單向綁定*/ rt,必須要有對應(yīng)的屬性綁定才行,否則可能會導(dǎo)致整個頁面不顯示。Ctr 0個引用_public string Text|get return text; set OnPropertyC:hanged
47、(value# ref text); C#屬性和頁面雙向綁定,依賴Vue,支持簡單屬性的雙向綁定,和集合的單向綁定,復(fù)雜屬性請用Json字符串JS中也可以用Get(“屬性名”);Set(“屬性名”值)訪問和設(shè)置屬性值,可以不需要Vue屬性寫法:string text = 文字;public string Textget return text; set OnPropertyChanged(value, ref text); Html 頁面必須引用 vue.js Vue2.0蘭 WebUlM 試 .,.-div id=pagediv id=ui-sys-bar onmousemove=if(ev
48、ent.button = 0) MoveWindow(); ondblclick=Command MaxOrNor() span id=header-titlediv id=ui-sys-commands01/sp span id=close title=關(guān)閉按鈕onclick=Comnnand_Close() onmousennove=event.stopPropagation() v!內(nèi)容開始ciframe id=testframe width=100% frameborder=0 height=100% allowtransparency=true src=mstp頁面設(shè)置一個綁定的全局
49、ID,默認(rèn)是page,如果想改成其他的,頁面和C#類需要一起改,在構(gòu)造函數(shù)里設(shè)置1個引用public class index : DSkinFmsMiniBlinkPage0個引用public index() 1 Id = ;頁面里的Text就是綁定到C#里定義的Text的屬性了綁定操作寫好之后,Js中就可以操作這個Vue綁定對象了,對象名就是那個Id,默認(rèn)為pageJs中的高級操作可以到Vue官網(wǎng)查看教程 HYPERLINK /v7guide/ /v7guide/集合綁定:using DSkin.Forms;MiniBlinkCollection items;3個引用public MiniB
50、linkCollection Itemsgetif (items = null)items = new MiniBlinkCollection(this) N return items;集合必須用MiniBlinkCollection才能綁定,泛型,可以支持簡單的類對象綁定MiniBlinkCollection lis丈工tEm;1個引用public MiniBlinkCallection Listitemgetif (listitem = null)listitem = new MiniBlinkCollection(this)return lis丈工tEm;4 T弓丨用public cla
51、ss item1個引用public string name get; set; 1個引用public string text get; set; 構(gòu)造函數(shù)里添加集合數(shù)據(jù)Id0: i0; i10 ; i+4-0個引用Id0: i0; i10 ; i+4-0個引用public dashboard()Items.Add(asdad 4- i);Listitem. Add (new item name =名字+ text =文字+ i ); 假如你在其他地方修改了集合屬性,必須調(diào)用集合的SaveChanges();方法才能更新到UI/ /綁定方法需要綁定的方法前面加DSFunctiongfiRj以綁定
52、給兀調(diào)用了 ,參數(shù)類型和數(shù)量不要搞錯了 / / DSkin.DirectUI.JSFunction0個引用public void AddData(string data)Items*Add(data); Items,SaveChanges(); _1 T引用public class dashboard : DSkin.Forms.MiniBlinkPage頁面中的綁定寫法,如果不懂的話,可以到Vue官網(wǎng)看看集合綁定寫法v-for=item in屬性名F:動態(tài)添加/button itemitem.textJs綁定C#方法和舊版一樣,方法前面加JSFunction,方法參數(shù)只支持簡單的數(shù)據(jù)類型,數(shù)量和類型要和JS調(diào) 用的對應(yīng)Ill III方法可以以同步的方式調(diào)用,也可以異步調(diào)用,異步調(diào)用的話,方法體會在線程池里運行,如果里面有操作UI ,請委托到主線程,InvokeIII III III DSkin.DirectUI.JSFunctiono個引用public string GetData(string d日ta)SystemT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)學(xué)專家知識保護(hù)協(xié)議
- 2025年農(nóng)村廢棄民房購買合同
- 2025年分期付款購買裝修家具協(xié)議
- 2025年代理商業(yè)務(wù)保密協(xié)議
- 2025年奢侈品銷售代理合作合同
- 2025年室內(nèi)裝飾施工驗收設(shè)計協(xié)議
- 2025年度定制化母嬰護(hù)理月嫂服務(wù)合同4篇
- 高空設(shè)施安裝與拆除作業(yè)安全協(xié)議書3篇
- 2025版大學(xué)食堂冷鏈?zhǔn)巢呐渌头?wù)合同模板3篇
- 2025版土地證抵押個人借款合同示范文本3篇
- 2025屆高考英語 716個閱讀理解高頻詞清單
- 報建協(xié)議書模板
- 汽車配件購銷合同范文
- 貴州省2024年中考英語真題(含答案)
- 施工項目平移合同范本
- (高清版)JTGT 3360-01-2018 公路橋梁抗風(fēng)設(shè)計規(guī)范
- 胰島素注射的護(hù)理
- 云南省普通高中學(xué)生綜合素質(zhì)評價-基本素質(zhì)評價表
- 2024年消防產(chǎn)品項目營銷策劃方案
- 聞道課件播放器
- 五星級酒店收入測算f
評論
0/150
提交評論