所以我已经阅读了这个,并将在最后提供相关的属性。
我希望在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")
结束子
结束类