我正在尝试实现带有菜单条的"标志"。
我有一个带有红旗和黑旗的图像列表。
当我单击菜单项时,我想切换图像。我遇到的问题是,一旦我更改图像,它就会想要做 SizeToFit,这使得图标大致是文本的高度。 我不想这样。我希望图像是其实际大小。
我尝试将语句按不同的顺序排列,但我尝试过的似乎都不起作用。
目前,我在设计时将按钮设置为黑旗。 此代码显示我尝试更改为危险标志。
tsbFlagPatient.Image = ilFlags.Images(1)
tsbFlagPatient.ImageScaling = ToolStripItemImageScaling.None
tsbFlagPatient.DisplayStyle = ToolStripItemDisplayStyle.Image
[如果有更好的方法来切换图像,我对此持开放态度。这似乎是一个单独的问题。]
我无法使图像滚动工作。由于我在这里不需要文本,所以我使用了背景图像并设置
BackgroundImageLayout = Stretch
这允许图像大小合适。您可以打开自动大小 = false,然后手动设置高度、宽度以微调菜单的大小。
我确实重新考虑了图像列表,并将图像更改为存储在项目资源中。这是切换图像的代码
Public Sub SetFlagImage(flagSet As Boolean)
If flagSet = False Then
btnFlag.BackgroundImage = My.Resources.appbar_flag_wavy_black
btnFlag.BackgroundImage.Tag = "black"
Else
btnFlag.BackgroundImage = My.Resources.appbar_flag_wavy_red
btnFlag.BackgroundImage.Tag = "red"
End If
End Sub
这对这里提出的问题没有影响。一般来说,可能比拥有图像列表更好,因为所有表单都可以访问它。