翻譯|使用教程|編輯:龔雪|2020-06-02 09:31:48.730|閱讀 465 次
概述:本文中包含一些示例和調整WinForms UI組件的方法,希望當您在使用WinForms產品系列的功能時,這些信息能幫助到您。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取
DevExpress Winforms Controls 內置140多個UI控件和庫,完美構建流暢、美觀且易于使用的應用程序。想要體驗?點擊下載>>
本文中包含一些示例和調整WinForms UI組件的方法,希望當您在使用WinForms產品系列的功能時,這些信息能幫助到您。
可以根據應用于DevExpress驅動的WinForms應用程序主題來調整矢量圖標的顏色(假設您根據DevExpress準則生成矢量圖標),如果您更喜歡柵格圖標,則可能需要手動實現類似的操作。在最簡單的情況下,您將需要兩個圖像集:與淺色皮膚形成鮮明對比的較暗圖像,反之亦然。 將您的圖像放在單獨的圖像集中,并在用戶更改外觀時交換它們。 要確定皮膚是深色還是淺色,請調用FrameHelper.IsDarkSkin方法。
using DevExpress.Utils.Frames; //... if (FrameHelper.IsDarkSkin(this.GetActiveLookAndFeel())) { //current skin/palette is dark } else { //current skin/palette is light }
對于矢量皮膚,此方法還考慮了激活調色板。Bezier外觀 — 對于默認調色板,IsDarkSkin方法返回“ true”,但是如果用戶應用了一個調色板(例如“ Aquarelle”),則該方法返回“ false”。
在v18.1中引入 - 初始屏幕,這些屏幕鎖定了UI線程,并且不允許用戶與基礎表單進行交互。通常啟動屏幕可幫助指示正在進行的操作,疊加表單的不同之處在于,它們使用自定義的繪畫工具來完全重繪初始屏幕(甚至顯示充當按鈕的圖像)。
您可以使用Overlay Forms來限制用戶對特定應用程序屏幕的訪問,在下面的動畫中, 包括四個頁面。只有具有"Premium Subscription"的用戶才能訪問最后一頁,通過結合使用自定義文字繪畫工具和兩個圖像繪畫工具,您可以允許沒有訂閱的用戶激活此標簽 - 并立即使用包含升級優惠的透明屏幕"obfuscate"標簽。
您可以簡單地處理事件,來在用戶沒有訪問權限時取消用戶導航。 Overlay Forms可以幫助添加獨特的風格,并幫助您更好地與最終用戶進行交互。
如果您過去曾經使用過WinForms Data Grid,則可能對很熟悉。 如果在代碼中創建列,那么必須將此屬性設置為數據源字段的名稱。 如果您的數據類是簡單的屬性列表,則此屬性的實現細節很簡單。 在實際情況下,數據源類通常包括存儲來自其他自定義類的對象的屬性。 在下面的代碼示例中,每個"Employee" 記錄都包含一個具有兩個嵌套屬性的"Occupation"字段:"Department"和"Position”。
public class Employee { public string FirstName { get; set; } public string LastName { get; set; } public Occupation Occupation { get; set; } } public class Occupation { public DepartmentEnum Department { get; set; } public string Position { get; set; } } public enum DepartmentEnum { RnD = 1, Support = 2, Design = 3, TW = 4, Management = 5 }
要生成標準(非主從)網格并顯示"Employee"實體,您需要添加四列并設置正確的FieldName屬性。對于前兩列很簡單:FieldNames是“ FirstName”和“ LastName”,但是輕松設置其他兩列可能并不容易(特別是對于DevExpress新手用戶),與您在代碼中訪問屬性相同的方式指定這些列 - 輸入父屬性名稱、點字符(".")和子屬性名稱。
GridColumn colFirstName = new GridColumn() { Caption = "First Name", FieldName = "FirstName", Visible = true }; GridColumn colLastName = new GridColumn() { Caption = "Last Name", FieldName = "LastName", Visible = true }; GridColumn colDepartment = new GridColumn() { Caption = "Department", FieldName = "Occupation.Department", Visible = true }; GridColumn colPosition = new GridColumn() { Caption = "Position", FieldName = "Occupation.Position", Visible = true }; gridView1.Columns.AddRange(new GridColumn[] { colFirstName, colLastName, colDepartment, colPosition });
默認的表單初始化引擎會在表單準備就緒后立即顯示它,窗體已可見后,將加載子控件和外觀位圖。此操作 - Microsot和DevExpress表單共有的可能導致閃爍,子控件越大,加載所需的時間就越長(并且閃爍更加明顯)。 如果您在應用程序中發現此問題,請覆蓋表單的ShowMode屬性:
protected override FormShowMode ShowMode { get { return FormShowMode.AfterInitialization; } }
AfterInitialization值將初始形式的不透明度設置為零,當表單及其子項準備就緒時,將恢復不透明度并同時顯示整個表單。 請注意,此調整對子MDI表單沒有影響,因為這些表單不支持不透明度。
需要在代碼中顯示和隱藏布局控件項的開發人員經常使用BaseLayoutItem.Visibility屬性,將此屬性從Always更改為Never,剩余的布局項目會自動調整大小以占據可用空間。
如果您不希望Layout Control項自動調整大小,請改用Boolean ContentVisible屬性。
DevExpress技術交流群2:775869749 歡迎一起進群討論
掃描關注DevExpress中文網微信公眾號,及時獲取最新動態及最新資訊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網