翻译|使用教程|编辑:莫成敏|2020-05-26 15:21:53.500|阅读 128 次
概述:在此文章中,我们将看到如何将不同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@cahobeh.cn
文章转载自: