首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ToolStrip在启动时通过toolstrip.ImageScalingSize编程调整toolstrip.ImageScalingSize按钮图像的大小

通过ToolStrip在启动时通过toolstrip.ImageScalingSize编程调整toolstrip.ImageScalingSize按钮图像的大小
EN

Stack Overflow用户
提问于 2018-03-20 21:40:36
回答 2查看 540关注 0票数 0

因此,我已经阅读了这方面的内容,并将在最后提供相关的属性。

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

代码语言:javascript
复制
    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!但可能是我..。

EN

回答 2

Stack Overflow用户

发布于 2018-03-20 23:25:16

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

这种描述可能很清楚,所以这里是代码模式。

代码语言:javascript
复制
    With ToolStrip1
        .SuspendLayout()
        .AutoSize = False
        .ImageScalingSize = New Size(40, 40)
        .ResumeLayout()
        .AutoSize = True
    End With
票数 2
EN

Stack Overflow用户

发布于 2021-06-23 14:37:29

Imports System.Drawing : Imports Microsoft.VisualBasic

Imports Microsoft.Win32 : Imports系统

Imports System.IO : Imports System.Windows.Forms

代码语言:javascript
复制
Public Class Form1

    Inherits Form

私有toolStripItem1作为ToolStripButton

私有toolStrip1作为ToolStrip

公众分组新()

代码语言:javascript
复制
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) _

代码语言:javascript
复制
                       Handles MyBase.Load

试一试

代码语言:javascript
复制
  Dim ico As New System.Drawing.Icon("D:\Resources\icos\kvr.ico")

  Me.Icon = ico      

异常渔获物

结束尝试

结束子对象

公共共享Sub ()

代码语言:javascript
复制
Dim form1 As Form1 = New Form1()

form1.ShowDialog()

结束子对象

私有子toolStripItem1_Click(ByVal发送方为对象,ByVal e为EventArgs)

代码语言:javascript
复制
System.Windows.Forms.MessageBox.Show("Successfully enlarged ToolStripButtonImage size")

结束子对象

端级

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49394562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档