翻譯|使用教程|編輯:莫成敏|2020-05-26 15:21:53.500|閱讀 184 次
概述:在此文章中,我們將看到如何將不同DPI的圖像設置為WinForms UI控件,這些控件將根據機器的DPI(每英寸點數)自動選擇。當將單個應用程序部署到不同的計算機時,這將確保映像保持清晰度。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Essential Studio for Windows Forms界面控件包含了高性能的Windows應用程序開發中所需的所有控件,如Grids、Charts、Gauges、Menus、Calendars、Editors等等。 到目前為止,我們開發Windows Forms 控件包已達十幾年,所以該控件包是功能最齊全的控件集。除此之外,Essential Studio for WinForms還包含了一些特有控件,使您可以為應用程序添加Excel、Word和PDF格式文件的瀏覽和創建功能。
點擊下載Essential Studio for Windows Forms最新版
您是否愿意為使用不同DPI的不同屏幕提供清晰的圖像?如果是這樣,這篇文章會幫助您實現這一目標!
在此文章中,我們將看到如何將不同DPI的圖像設置為WinForms UI控件,這些控件將根據機器的DPI(每英寸點數)自動選擇。當將單個應用程序部署到不同的計算機時,這將確保映像保持清晰度。
在此博客中,我們將以Syncfusion WinForms中的Ribbon控件為例。該ImageListAdv組件將作為骨干,為我們所完成。
ImageListAdv組件用于存儲圖像集合。圖像基于索引存儲,即存儲在數組中。具有Image屬性的其他控件可以使用圖像列表來獲取適當的圖像。我們將這種方法分為兩部分:
使用不同DPI的圖像填充圖像列表
請按照以下步驟用不同DPI的圖像填充圖像列表:
步驟1:將ImageListAdv組件拖到設計器中,然后導航到屬性窗口。
步驟2:在“圖像”集合中,添加所需的圖像。它們將充當默認圖像。同樣,當用戶未設置DPI圖像時,將顯示這些圖像。
請參考以下屏幕截圖以更好地理解。
注意:為說明起見,請考慮在“圖像”集合中分別在0,第一和第二索引位置設置“剪切”,“復制”和“粘貼”。
同時,屬性窗口中提供了另一個名為DPIImages collection的選項,該選項有助于為不同的DPI設置圖像。
步驟1:單擊選項,您將看到DPIAwareImage Collection Editor窗口。
步驟2:單擊Add(添加),將創建DPIAwareImage實例,您可以在其中看到以下屬性:
注意:繼續我們的插圖,對于實際圖像剪切,復制和粘貼,我們需要為不同的DPI添加圖像。
因此,在DPIAwareImage [0]中:
重要說明:如果您希望在DPIAwareImage [0]中為不同的DPI 添加粘貼圖像,則必須將其索引設置為2,因為粘貼圖像出現在Images集合的第二個索引中。
因此,這就是通過Index屬性作為鍵將實際圖像與為不同DPI設置的等效圖像進行映射的方式。
使用圖像列表組件映射功能區控件圖像
請按照以下步驟將功能區控件圖像與圖像列表組件進行映射:
步驟1:將Ribbon控件拖到設計器中。
步驟2:根據您的應用程序要求,創建帶有選項卡,按鈕和圖庫的UI。
步驟3:與往常一樣,使用適當的索引值將按鈕,下拉按鈕,拆分按鈕和圖庫項目的圖像與ImageListAdv組件中存在的Image集合映射。
現在,功能區控件檢查“嘗試從圖像集合中獲取圖像時”,功能區控件還從DPIImages集合中檢查其相關的DPI圖像。
如果圖像可用,則將選擇適當的圖像進行顯示。如果DPIImages集合中沒有圖像,則Images集合中的圖像將設置為默認圖像。
請參考以下代碼示例。
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">[表單設計器代碼– C#]</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
//初始化圖像列表組件,然后將圖像添加到“ Images”和“ DPIImages”集合中。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
私有Syncfusion.Windows.Forms.Tools.ImageListAdv imageListAdv1 = =新 </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Syncfusion.Windows.Forms.Tools.ImageListAdv(this.components);</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.imageListAdv1.Images.AddRange(new System.Drawing.Image [] {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
((System.Drawing.Image)(resources.GetObject(“ imageListAdv1.Images1”)))),</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
((System.Drawing.Image)(resources.GetObject(“ imageListAdv1.Images2”))),</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
((System.Drawing.Image)(resources.GetObject(“ imageListAdv1.Images3”)))));;</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Syncfusion.Windows.Forms.Tools.DPIAwareImage dpiAwareImage1 =新 </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Syncfusion.Windows.Forms.Tools.DPIAwareImage();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Syncfusion.Windows.Forms.Tools.DPIAwareImage dpiAwareImage2 =新 </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Syncfusion.Windows.Forms.Tools.DPIAwareImage();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Syncfusion.Windows.Forms.Tools.DPIAwareImage dpiAwareImage3 =新 </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Syncfusion.Windows.Forms.Tools.DPIAwareImage();</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage1.DPI120Image = </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
((System.Drawing.Image)(resources.GetObject(“ dpiAwareImage1.DPI120Image”))));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage1.DPI144Image = </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
((System.Drawing.Image)(resources.GetObject(“ dpiAwareImage1.DPI144Image”))));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage1.DPI192Image = </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
((System.Drawing.Image)(resources.GetObject(“ dpiAwareImage1.DPI192Image”))));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage1.Index = 0;</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage2.DPI120Image = </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
((System.Drawing.Image)(resources.GetObject(“ dpiAwareImage2.DPI120Image”))));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage2.DPI144Image = </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
((System.Drawing.Image)(resources.GetObject(“ dpiAwareImage2.DPI144Image”))));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage2.DPI192Image = </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
((System.Drawing.Image)(resources.GetObject(“ dpiAwareImage2.DPI192Image”))));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage2.Index = 1;</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage3.DPI120Image =((System.Drawing.Image)(resources.GetObject(“ dpiAwareImage3.DPI120Image”))));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage3.DPI144Image =((System.Drawing.Image)(resources.GetObject(“ dpiAwareImage3.DPI144Image”))));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage3.DPI192Image =((System.Drawing.Image)(resources.GetObject(“ dpiAwareImage3.DPI192Image”))));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage3.Index = 2;</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.imageListAdv1.DPIImages.AddRange(new </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Syncfusion.Windows.Forms.Tools.DPIAwareImage [] {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage1,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage2,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
dpiAwareImage3});</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
//初始化剪切,復制和粘貼按鈕。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
私人System.Windows.Forms.ToolStripButton cutButton =新 </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
System.Windows.Forms.ToolStripButton();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
私人System.Windows.Forms.ToolStripButton copyButton =新 </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
System.Windows.Forms.ToolStripButton();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
私有System.Windows.Forms.ToolStripButton pasteSplitButton =新的System.Windows.Forms.ToolStripButton();</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
//定義剪切按鈕。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.cutButton.ImageTransparentColor = System.Drawing.Color.Magenta;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.cutButton.Margin =新的System.Windows.Forms.Padding(0,1,0,0);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.cutButton.Name =“ cutButton”;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.cutButton.Size =新的System.Drawing.Size(30,24);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.cutButton.Text =“剪切”;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.cutButton.Click + = new System.EventHandler(this.cutButton_Click);</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
//定義復制按鈕。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.copyButton.ImageTransparentColor = System.Drawing.Color.Magenta;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.copyButton.Margin =新的System.Windows.Forms.Padding(0,1,0,0);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.copyButton.Name =“ copyButton”;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.copyButton.Size =新的System.Drawing.Size(39,24);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.copyButton.Text =“復制”;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.copyButton.Click + =新的System.EventHandler(this.copyButton_Click);</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
//定義粘貼按鈕。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.pasteSplitButton.ImageTransparentColor = System.Drawing.Color.Magenta;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.pasteSplitButton.Name =“ pasteSplitButton”;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.pasteSplitButton.Size = new System.Drawing.Size(38,76);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.pasteSplitButton.Text =“粘貼”;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.pasteSplitButton.TextAlign = System.Drawing.ContentAlignment.BottomCenter;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.pasteSplitButton.TextImageRelation = </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
System.Windows.Forms.TextImageRelation.ImageAboveText;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.pasteSplitButton.Click + = new </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
System.EventHandler(this.pasteSplitButton_ButtonClick);</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
//添加圖像以剪切,復制和粘貼按鈕。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.cutButton.Image = this.imageListAdv1.Images [0];</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.copyButton.Image = this.imageListAdv1.Images [1];</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.pasteSplitButton.Image = this.imageListAdv1.Images [2];</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
…………</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
…………</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
…………</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
//將剪切和復制按鈕添加到單獨的工具欄面板。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.toolStripPanelItem1.Items.AddRange(new System.Windows.Forms.ToolStripItem [] {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.cutButton,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.copyButton});</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
//將粘貼按鈕以及剪切和復制按鈕添加到主工具欄面板。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.clipBoardtoolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem [] {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.pasteSplitButton,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
this.toolStripPanelItem1});</font></font>
執行完以上代碼后,我們將獲得以下屏幕截圖所示的輸出。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: