因此,我已经阅读了这方面的内容,并将在最后提供相关的属性。
我希望将自定义的ToolStrip按钮图像大小存储在my.settings中,并在启动时加载它们,将它们更改为用户设置的大小。我在启动时运行的代码是:
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()这确实改变了所有ToolStips的属性。但是,这些图像最初显示在默认的16x16,直到我将它们拖到ToolStripContainer的另一个区域。然后,它将正确调整大小。这对我来说意味着,在这些容器/控件的吸引下(因此对.invalidate、.resumelayout和.refresh进行了全面轰炸!)
在礼仪方面,设计师认为相关的礼仪:
ToolStripButton
.autosize =真
.imagescaling = SizeToFit
ToolStrip
.autosize =真
.imagesclaing = 16,16 (后来被代码修改)
ToolStripContainer
这是其中之一,你在那里绕半天圈,基本上可能是由于一个简陋的方面的.net!但可能是我..。
发布于 2018-03-20 23:25:16
让它与AutoSize=True一起工作总是有点令人困惑。我发现,如果您将其设置为布局挂起的False,然后将其设置为启用布局的True,则可以获得所需的效果。
这种描述可能很清楚,所以这里是代码模式。
With ToolStrip1
.SuspendLayout()
.AutoSize = False
.ImageScalingSize = New Size(40, 40)
.ResumeLayout()
.AutoSize = True
End With发布于 2021-06-23 14:37:29
Imports System.Drawing : Imports Microsoft.VisualBasic
Imports Microsoft.Win32 : Imports系统
Imports System.IO : Imports System.Windows.Forms
Public Class Form1
Inherits Form私有toolStripItem1作为ToolStripButton
私有toolStrip1作为ToolStrip
公众分组新()
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:\Book4\Resources\icos\CUT.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作为EventArgs) _
Handles MyBase.Load试一试
Dim ico As New System.Drawing.Icon("D:\Resources\icos\kvr.ico")
Me.Icon = ico 异常渔获物
结束尝试
结束子对象
公共共享Sub ()
Dim form1 As Form1 = New Form1()
form1.ShowDialog()结束子对象
私有子toolStripItem1_Click(ByVal发送方为对象,ByVal e为EventArgs)
System.Windows.Forms.MessageBox.Show("Successfully enlarged ToolStripButtonImage size")结束子对象
端级
https://stackoverflow.com/questions/49394562
复制相似问题