通过 toolstrip 在启动时以编程方式调整工具栏按钮图像的大小.图像缩放大小



所以我已经阅读了这个,并将在最后提供相关的属性。

我希望在my.settings中存储自定义ToolStrip按钮图像大小并在启动时加载它们,将它们更改为用户设置的大小。我在启动时运行的代码是:

Dim tss As New List(Of ToolStrip)
tss = GetAllControls(Me).OfType(Of ToolStrip)().ToList
For Each ts In tss
ts.BackColor = My.Settings.ToolStripBGColor
ts.ImageScalingSize = New Size(My.Settings.ToolStripImgScalingSize, My.Settings.ToolStripImgScalingSize)
ts.ResumeLayout()
ts.Invalidate()
ts.Refresh()
Next
ToolStripContainer.Invalidate()
ToolStripContainer.Refresh()

这确实会更改所有工具提示的属性。但是,图像最初以默认的 16x16 显示,直到我将它们拖到 ToolStripContainer 的另一个区域。然后,它会正确调整大小。这对我来说往往意味着这些容器/控件的绘制是这样的事情(因此对 .invalidate、.resumelayout 和 .refresh!

关于礼仪,设计师认为相关的:

工具条按钮

.autosize = true

.imagescaling = SizeToFit

工具条

.autosize = true

.imagesclaing = 16,16(后来由代码修改)

工具条容器

  • 看不出任何会影响这一点??

这是您绕半天圈子的人之一,基本上可能是由于 .net 的卡顿方面!可能是我...

让它与AutoSize=True一起工作总是有点令人困惑。我发现,如果您将其设置为False布局暂停,然后将其设置为启用布局的True,则可以获得所需的效果。

该描述可能像泥巴一样清晰,因此这里是代码模式。

With ToolStrip1
.SuspendLayout()
.AutoSize = False
.ImageScalingSize = New Size(40, 40)
.ResumeLayout()
.AutoSize = True
End With

导入系统.绘图:导入Microsoft.VisualBasic

导入 Microsoft.Win32 : 导入系统

导入 System.IO:导入系统.Windows.Forms

Public Class Form1
Inherits Form

私有工具条带项 1 作为工具条形按钮

私有工具条带 1 作为工具带

公共子新()

toolStrip1 = New System.Windows.Forms.ToolStrip()
toolStrip1.Size = New System.Drawing.Size(580,40)
toolStrip1.BackColor = System.Drawing.Color.MistyRose
toolStrip1.AutoSize = True
toolStripItem1 = New System.Windows.Forms.ToolStripButton()    

toolStrip1.SuspendLayout()
Me.SuspendLayout()
toolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripButton() _
{toolStripItem1})
toolStrip1.Location = New System.Drawing.Point(0, 0)
toolStrip1.Name = "toolStrip1"
toolStripItem1.AutoSize = False
toolStripItem1.Size = New System.Drawing.Size(110,95)
toolStripItem1.BackgroundImage = Image.FromFile("D:Book4ResourcesicosCUT.png")
toolStripItem1.Name = "toolStripItem1"
toolStripItem1.Text = "Cut"
toolStripItem1.Font = New System.Drawing.Font("Segoe UI", 16.0!, _
System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, _
CType(0, Byte))
toolStripItem1.TextAlign = System.Drawing.ContentAlignment.TopCenter
AddHandler Me.toolStripItem1.Click, New System.EventHandler _
(AddressOf Me.toolStripItem1_Click)
Me.AutoScaleDimensions = New System.Drawing.SizeF(6F, 13F)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1500,900)
Me.BackColor = ColorTranslator.FromHtml("#808080")
Me.Controls.Add(Me.toolStrip1)
Me.Name = "Form1"
toolStrip1.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout()

结束子

公共子Form1_Loaded(发件人作为对象,e 作为事件参数)_

Handles MyBase.Load

尝试

Dim ico As New System.Drawing.Icon("D:Resourcesicoskvr.ico")
Me.Icon = ico      

捕获 ex 作为例外

结束尝试

结束子

公共共享子主()

Dim form1 As Form1 = New Form1()
form1.ShowDialog()

结束子

private sub toolStripItem1_Click(ByVal sender as Object,ByVal e as EventArgs)

System.Windows.Forms.MessageBox.Show("Successfully enlarged ToolStripButtonImage size")

结束子

结束类

最新更新