翻譯|使用教程|編輯:莫成敏|2020-05-26 15:21:53.500|閱讀 184 次
概述:在此文章中,我們將看到如何將不同DPI的圖像設(shè)置為WinForms UI控件,這些控件將根據(jù)機(jī)器的DPI(每英寸點(diǎn)數(shù))自動(dòng)選擇。當(dāng)將單個(gè)應(yīng)用程序部署到不同的計(jì)算機(jī)時(shí),這將確保映像保持清晰度。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Essential Studio for Windows Forms界面控件包含了高性能的Windows應(yīng)用程序開發(fā)中所需的所有控件,如Grids、Charts、Gauges、Menus、Calendars、Editors等等。 到目前為止,我們開發(fā)Windows Forms 控件包已達(dá)十幾年,所以該控件包是功能最齊全的控件集。除此之外,Essential Studio for WinForms還包含了一些特有控件,使您可以為應(yīng)用程序添加Excel、Word和PDF格式文件的瀏覽和創(chuàng)建功能。
點(diǎn)擊下載Essential Studio for Windows Forms最新版
您是否愿意為使用不同DPI的不同屏幕提供清晰的圖像?如果是這樣,這篇文章會(huì)幫助您實(shí)現(xiàn)這一目標(biāo)!
在此文章中,我們將看到如何將不同DPI的圖像設(shè)置為WinForms UI控件,這些控件將根據(jù)機(jī)器的DPI(每英寸點(diǎn)數(shù))自動(dòng)選擇。當(dāng)將單個(gè)應(yīng)用程序部署到不同的計(jì)算機(jī)時(shí),這將確保映像保持清晰度。
在此博客中,我們將以Syncfusion WinForms中的Ribbon控件為例。該ImageListAdv組件將作為骨干,為我們所完成。
ImageListAdv組件用于存儲(chǔ)圖像集合。圖像基于索引存儲(chǔ),即存儲(chǔ)在數(shù)組中。具有Image屬性的其他控件可以使用圖像列表來獲取適當(dāng)?shù)膱D像。我們將這種方法分為兩部分:
使用不同DPI的圖像填充圖像列表
請按照以下步驟用不同DPI的圖像填充圖像列表:
步驟1:將ImageListAdv組件拖到設(shè)計(jì)器中,然后導(dǎo)航到屬性窗口。
步驟2:在“圖像”集合中,添加所需的圖像。它們將充當(dāng)默認(rèn)圖像。同樣,當(dāng)用戶未設(shè)置DPI圖像時(shí),將顯示這些圖像。
請參考以下屏幕截圖以更好地理解。
注意:為說明起見,請考慮在“圖像”集合中分別在0,第一和第二索引位置設(shè)置“剪切”,“復(fù)制”和“粘貼”。
同時(shí),屬性窗口中提供了另一個(gè)名為DPIImages collection的選項(xiàng),該選項(xiàng)有助于為不同的DPI設(shè)置圖像。
步驟1:單擊選項(xiàng),您將看到DPIAwareImage Collection Editor窗口。
步驟2:單擊Add(添加),將創(chuàng)建DPIAwareImage實(shí)例,您可以在其中看到以下屬性:
注意:繼續(xù)我們的插圖,對于實(shí)際圖像剪切,復(fù)制和粘貼,我們需要為不同的DPI添加圖像。
因此,在DPIAwareImage [0]中:
重要說明:如果您希望在DPIAwareImage [0]中為不同的DPI 添加粘貼圖像,則必須將其索引設(shè)置為2,因?yàn)?strong>粘貼圖像出現(xiàn)在Images集合的第二個(gè)索引中。
因此,這就是通過Index屬性作為鍵將實(shí)際圖像與為不同DPI設(shè)置的等效圖像進(jìn)行映射的方式。
使用圖像列表組件映射功能區(qū)控件圖像
請按照以下步驟將功能區(qū)控件圖像與圖像列表組件進(jìn)行映射:
步驟1:將Ribbon控件拖到設(shè)計(jì)器中。
步驟2:根據(jù)您的應(yīng)用程序要求,創(chuàng)建帶有選項(xiàng)卡,按鈕和圖庫的UI。
步驟3:與往常一樣,使用適當(dāng)?shù)乃饕祵粹o,下拉按鈕,拆分按鈕和圖庫項(xiàng)目的圖像與ImageListAdv組件中存在的Image集合映射。
現(xiàn)在,功能區(qū)控件檢查“嘗試從圖像集合中獲取圖像時(shí)”,功能區(qū)控件還從DPIImages集合中檢查其相關(guān)的DPI圖像。
如果圖像可用,則將選擇適當(dāng)?shù)膱D像進(jìn)行顯示。如果DPIImages集合中沒有圖像,則Images集合中的圖像將設(shè)置為默認(rèn)圖像。
請參考以下代碼示例。
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">[表單設(shè)計(jì)器代碼– 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;">
//初始化剪切,復(fù)制和粘貼按鈕。</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;">
//定義復(fù)制按鈕。</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 =“復(fù)制”;</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;">
//添加圖像以剪切,復(fù)制和粘貼按鈕。</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;">
//將剪切和復(fù)制按鈕添加到單獨(dú)的工具欄面板。</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;">
//將粘貼按鈕以及剪切和復(fù)制按鈕添加到主工具欄面板。</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>
執(zhí)行完以上代碼后,我們將獲得以下屏幕截圖所示的輸出。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: