整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          DevExpress WinForms-支持HTML & CSS模板全新的DirectX表單

          evExpress WinForms控件附帶了許多標準的System.Windows.Forms.Form對象對應的對象,在v22.1版本發布新的表單選項之前,讓我們一起看看當前所有可用的表單選項。

          復制下面地址獲取工具

          https://www.evget.com/product/2348/download

          XtraForm

          XtraForm 是標準表單替換的默認選擇,這是DevExpress中最基本的“可換膚”表單選項。

          下面的列表總結了 XtraForm 中可用的一些獨特功能:

          • 接受光柵和矢量圖像作為圖標(而標準表單對象只能接受“.ico”圖像)。
          • XtraForm可以增加其邊框的厚度,當您啟用OptimizeRemoteConnectionPerformance屬性時,會自動激活此模式。
          • 在標題字符串中合并 MDI 文檔標題(請參閱ShowMdiChildCaptionInParentTitle 屬性)。
          • 可以顯示發光效果替代標準陰影(請參閱FormBorderEffect屬性)。
          • 支持可附加的操作,Snap Window Behavior允許您實現捕捉到屏幕邊緣和彼此的"sticky"窗口,并且持久性操作將用戶表單布局自定義保存到注冊表。

          大多數 XtraForm 功能也可用于 XtraForm 后代,例如工具欄表單。

          Ribbon Form

          這種類型的DevExpress表單的賣點非常短:在您計劃添加功能區時使用它,此表單將其標題欄與我們的WinForms功能區控件合并來創建統一塊。

          Toolbar Form

          這個表單選項將BarItems的兩個區域嵌入到其標題欄中,當您不需要具有大量工具欄或功能區操作的專用命令區域時,工具欄表單是完美的。

          Tabbed Form

          Tabbed Form是為一種特定的 UI 隱喻而構建的——在表單標題欄區域帶有選項卡的類似瀏覽器的窗口,您可以在設計時單擊“+”按鈕來添加選項卡,每個選項卡都包含自己的可以承載控件的內容容器。

          Fluent Design Form

          Fluent Design Form絕對是DevExpress WinForms控件中最精致的Form選項。受 Windows 10 啟發,此表單在其標題欄中提供操作(類似于工具欄表單中的操作)、基于表單寬度的自適應布局以及與其子 Accordion Control 的高級通信。此外,Form 的側邊區域呈現了半透明的亞克力材質。

          DirectX Form

          最新的DirectX表單(在 v22.1 中可用)融合了技術團隊在過去幾年開始的所有突破性計劃:高 DPI 支持、DirectX 渲染以及 HTML 和 CSS 模板。

          此表單為所有能夠使用 DirectX 渲染引擎的子控件啟用 DirectX 硬件加速,與標準技術(當您翻轉全局 WindowsFormsSettings.ForceDirectXPaint 開關時)相比,DirectX 表單具有以下優點:

          • 為Ribbon控件、Gallery控件、按鈕、堆棧和布局面板、編輯器以及以前無法在 DirectX 模式下運行的許多其他控件啟用 DirectX 引擎。 例如,SimpleButton 不在 DirectX 兼容的控件列表中,它沒有允許您選擇首選渲染引擎的單獨UseDirectXPaint 屬性(例如,與 Data Grid 或 Accordion Control 不同)。但是當放置在 DirectX 窗體上時,這些(以及許多其他控件)在 DirectX 模式下運行。

          注意:許多DevExpress WinForms控件(例如,電子表格)不支持 DirectX 呈現,如果您將它們放在 DirectX Form上,這些控件當前不會顯示。

          • 所有啟用 DirectX 的控件都在單個設備上下文中呈現,從而提供更好的性能(尤其是在具有大量控件的情況下)。
          • 表單調整大小計算更快,調整大小動畫更流暢。

          DirectX Forms 還接受 HTML 和 CSS 模板,它允許您設計受現代 Web UI 解決方案啟發的酷炫表單,下圖來自官方的演示中心,展示了此類自定義UI的示例。

          初始 DirectX Form 的外觀模仿標準 XtraForm 樣式,此標準外觀存儲在默認模板中:

          <dx-form-frame id="frame">
          <dx-form-titlebar id="titlebar">
          <dx-form-icon id="icon"></dx-form-icon>
          <dx-form-text id="text"></dx-form-text>
          <dx-form-minimizebutton id="minimizebutton"></dx-form-minimizebutton>
          <dx-form-maximizebutton id="maximizebutton"></dx-form-maximizebutton>
          <dx-form-closebutton id="closebutton"></dx-form-closebutton>
          </dx-form-titlebar>
          <dx-form-content id="content"></dx-form-content>
          </dx-form-frame>

          這個默認模板既不需要 CSS 樣式也不需要按鈕的 onClick 屬性——這些標準元素的外觀和操作是硬編碼的,元素的外觀取決于標簽名稱,其行為通過元素 ID 設置。例如,以下行添加了一個看起來像Close按鈕,但行為類似于最小化按鈕的按鈕。

          <dx-form-closebutton id="minimizebutton"></dx-form-closebutton>

          此功能允許您在不需要自定義設計時使用標準表單元素,或快速設置自定義元素的行為。 例如,您可以從 <div> 元素創建自定義按鈕,并將其 ID 設置為“closebutton”。

          如果您的目標是完全自定義表單布局,請從以下模板開始。

          <div id="frame" class="frame">
          <div id="content">
          </div>
          </div>
          .frame {
          height: 100%;
          }

          這是您可以添加的最短的有效自定義模板 - 沒有 "frame" 和 "content"元素 ID 的模板被視為無效。

          DevExpress WinForm

          DevExpress WinForm擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!

          年一度的中秋節馬上就到啦,小伙伴們收到月餅了嗎。

          記得我的學生時代,郵件祝福還風靡過一段時間,打開QQ郵箱,各種轉發郵件和祝福郵件,現在想想都覺得有點久遠了。
          相信小伙伴們也都用過群發郵件的功能,例如QQ郵箱,163郵箱等都有提供這種功能,直接發送或者密送都可以。但都會存在一個問題,就是一鍵發送時,郵件內容都是一樣的,無法針對收件人而有個性化的稱呼。針對這個需求,我們可以做一個群發郵件的桌面端軟件。

          我們首先整理下我們需要實現的最簡單的功能:

          • 可以輸入并記住賬號和密碼
          • 可以導入收件人信息
          • 可以自由選擇收件人
          • 郵件內容可以針對收件人進行個性化修改,可以輸入郵件標題,可以附帶圖片
          • 有發送郵件的功能

          需求整理完成,說干就干。

          布局

          首先新建一個窗體,定義為MainForm。將MainForm的初始狀態修改為一打開就最大化。

          this.WindowState = FormWindowState.Maximized;

          我們可以用GroupBox將Mainform劃分為三部分,“登錄信息”,“收件人信息”,還有“郵件內容”,如圖:

          Tips:因為我們默認窗口最大化,所以我們需要先設置三個GroupBox的Anchor屬性,依次分別為“Top,Bottom,Left”,“Top,Bottom,Left”和“Top,Bottom,Left,Right”。這樣GroupBox就會隨窗口大小變化而不至于打亂布局。

          控件

          劃分布局之后,在每一個GroupBox中增加我們需要的控件。

          “登錄信息”

          兩個Label(標注“賬號”與“密碼”);

          兩個TextBox(用來輸入賬號與密碼);

          兩個CheckBox(一個用來記住賬戶密碼,一個用來隱藏密碼)。

          用TextBox輸入密碼時,我們可以設置TextBox的UseSystemPasswordChar屬性為True,則我們輸入的文字都會以密文顯示。與CheckBox聯動,默認勾選CheckBox時,密碼以符號顯示,不勾選CheckBox時,密碼以明文顯示。

          代碼如下:

          private void cbShowPwd_CheckedChanged(object sender, EventArgs e)
           {
                 if (this.cbShowPwd.Checked == true)
                      {
                          this.tbPassword.UseSystemPasswordChar = false;
                          
                      }
                      else
                      {
                          this.tbPassword.UseSystemPasswordChar = true;
                      }
          }

          實際效果如圖:

          記住賬戶與密碼涉及本地存儲,我們后面具體寫代碼時再來實現這個功能,先按住不提。


          “收件人信息”

          一個CheckBox(全選功能);

          一個CheckListBox(用來顯示導入的收件人信息);

          兩個Button(一個用來導入文件,一個用來確認選擇收件人);

          一個Label(用來顯示已選擇的收件人數量)。

          關于CheckListBox的相關設置與全選功能具體可以查看我的上一篇文章(「Winform開發小技巧05」批量操作單號-CheckListBox)

          全選功能代碼:

          private void cbSelectAll_CheckedChanged(object sender, EventArgs e)
           {
             //全選功能
                      if (this.cbSelectAll.Checked)
                      {
                          for (int i = 0; i < this.clbReceivers.Items.Count; i++)
                          {
                              if (!this.clbReceivers.GetItemChecked(i))
                                  this.clbReceivers.SetItemChecked(i,true);
                          }
                      }
                      else
                      {
                          for (int i = 0; i < this.clbReceivers.Items.Count; i++)
                          {
                              if (this.clbReceivers.GetItemChecked(i))
                                  this.clbReceivers.SetItemChecked(i, false);
                          }
                      }
          }

          這里的操作邏輯是:點擊Button導入收件人=>CheckListBox顯示收件人=>全選=>Label顯示已選人數=>點擊Button確認選擇,收件人數據傳輸到下一個部分“郵件內容”。

          導入功能我們可以寫一個方法,這里先暫時不寫。

          我們可以先解決Label的顯示問題。Label顯示選擇人數時,需要根據CheckListBox中Item的實時勾選狀態進行變化,這個比較有趣,我們可以在CheckListBox的Itemcheck事件中實現。

          代碼如下:

          private void clbReceivers_ItemCheck(object sender, ItemCheckEventArgs e)
           {
                      //這個事件是指示某項的選中狀態將要被更改、在更改前會執行這個事件
                      //所以checkedListBox.CheckedItems.Count獲取的是更改之前的值           
                      if (e.NewValue == CheckState.Checked)
                      {
          
                          this.lbSelectedCount.Text = "已選:"+(this.clbReceivers.CheckedItems.Count + 1).ToString();
          
                      }
                      else
                      {
                          this.lbSelectedCount.Text = "已選:" + (this.clbReceivers.CheckedItems.Count - 1).ToString();
          
                      }
          }

          實際效果如圖:(因為還沒有數據,為了展示效果,我先手動輸入一些數據)

          “郵件內容”

          兩個Label;

          兩個TextBox(一個用來顯示收件人,一個用來輸入標題,顯示收件人我們可以將其MultiLine屬性設置為True,這樣可以多行顯示);

          一個RichTextBox(用來輸入正文內容,后期我們用Html來發送文件,RichTextBox方便我們輸入段落及圖片);

          一個Button(用來確認發送郵件)。

          效果如圖:

          至此,我們的布局就全部完成了!

          但是大家又沒有發現一個問題,由于Winfrom界面縮放問題,我們生成的界面有點模糊,很難看,針對這個問題,微軟有專門的解決方案。

          首先右鍵項目=>添加新建項=>添加應用程序清單文件。

          打開app.manifest文件,取消application節點注釋


          打開App.config文件,添加節點EnableWindowsFormsHighDpiAutoResizing,值為true

          此時我們重新按F5進行編譯,可以發現界面分辨率正常了,瞬間好看不少有沒有。

          下篇文章,我們就開始正式編碼了,或許可以趕上中秋給大家拜個晚年了,哈哈哈


          如果各位覺得我寫的對你有那么一點點幫助,歡迎一鍵三連~感激不盡~

          印庫允許您將DevExpress .NET控件導出為各種文檔格式(PDF、HTML、MHT、TXT、CSV、XLS、RTF)和圖像格式(BMP、JPEG、GIF、TIFF、PNG、EMF),本文演示如何使用Print Preview窗口和代碼將控件導出為PDF格式。

          DevExpress Universal Subscription官方最新版免費下載試用,歷史版本下載,在線文檔和幫助文件下載-慧都網

          提示:請注意,XtraPrinting 庫無法將某些控件導出為特定格式,但是所有控件都可以導出為 PDF 或圖像格式。

          使用Print Preview窗口導出

          您可以使用Print Preview窗口將可打印控件導出為可用格式。

          使用控件的 ShowPrintPreview 方法顯示此窗口,下圖說明了網格控件的打印預覽窗口。

          Print Preview表單頂部的工具欄顯示Export Document… 按鈕,單擊此按鈕可顯示一個下拉菜單,您可以從中選擇所需的導出文件格式。

          要將頁面或報表標題添加到報表中,請使用可打印鏈接(PrintableComponentLink)生成報表。

          代碼導出

          以下代碼演示了如何使用 XtraPrinting 庫方法在代碼中將控件導出到 PDF 文件,而無需打印預覽窗口。 控件 (XtraGrid) 通過 PrintingSystemBase.ExportToPdf方法導出為 PDF。

          C#

          using DevExpress.XtraPrinting;
          
          // Create a PrintingSystem component.
          DevExpress.XtraPrinting.PrintingSystem ps = new DevExpress.XtraPrinting.PrintingSystem();
          
          // Create a link that will print a control.
          DevExpress.XtraPrinting.PrintableComponentLink link = new PrintableComponentLink(ps);
          
          // Specify the control to be printed.
          link.Component = gridControl1;
          
          // Generate a report.
          link.CreateDocument();
          
          // Export the report to a PDF file.
          string filePath = @"c:\gridcontrol.pdf";
          link.PrintingSystem.ExportToPdf(filePath);
          
          System.Diagnostics.Process process = new System.Diagnostics.Process();
          process.StartInfo.FileName = filePath;
          process.Start();

          VB.NET

          Imports DevExpress.XtraPrinting
          
          ' Create a PrintingSystem component.
          Dim ps As New DevExpress.XtraPrinting.PrintingSystem()
          
          ' Create a link that will print a control.
          Dim link As New DevExpress.XtraPrinting.PrintableComponentLink(ps)
          
          ' Specify the control to be printed.
          link.Component = gridControl1
          
          ' Generate a report.
          link.CreateDocument()
          
          ' Export a report to a PDF file.
          Dim filePath As String = "c:\gridcontrol.pdf"
          link.PrintingSystem.ExportToPdf(filePath)
          
          Dim process As New System.Diagnostics.Process()
          process.StartInfo.FileName = filePath
          process.Start()

          DevExpress WinForm

          DevExpress WinForm擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!


          主站蜘蛛池模板: 一区二区三区四区精品| 爱爱帝国亚洲一区二区三区 | 久久精品亚洲一区二区三区浴池| 无码人妻一区二区三区兔费| 精品一区二区三区中文字幕| 亚洲第一区精品日韩在线播放| 人妻体内射精一区二区三四| 国产在线aaa片一区二区99| 免费人妻精品一区二区三区| 国产成人精品一区二三区熟女| 99精品国产高清一区二区麻豆| 午夜福利av无码一区二区 | 国产丝袜美女一区二区三区| 国产SUV精品一区二区88L| 尤物精品视频一区二区三区| 中字幕一区二区三区乱码| 无码精品黑人一区二区三区| 国产精品日本一区二区不卡视频 | 日韩熟女精品一区二区三区 | 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 午夜一区二区在线观看| 午夜在线视频一区二区三区| 免费精品一区二区三区在线观看| 中文无码一区二区不卡αv| 中文字幕精品一区二区| 亚洲欧美成人一区二区三区| 在线观看视频一区二区| 国产一区视频在线免费观看| 日韩一区二区三区在线精品| 狠狠做深爱婷婷综合一区| 红桃AV一区二区三区在线无码AV| 日本一区二区不卡视频| 麻豆AV一区二区三区久久| 亚洲欧美日韩一区二区三区在线| 好吊妞视频一区二区| 国产精品男男视频一区二区三区 | 成人精品一区二区户外勾搭野战| 国产精品一区在线麻豆| 精品在线视频一区| 伊人精品视频一区二区三区| 亚洲一区二区三区四区在线观看|