【发布时间】:2015-07-10 11:17:35
【问题描述】:
我想将背景图片居中。但是背景图像比我的控件大(这是一个平面样式的复选框)。
A picture to make my problem clear
通常如果背景图片比控件小,它会像黑框一样显示(正确居中);但在我的情况下,它会在绿色框(左上角)中显示部分图像,但我想要的最终结果是橙色框(图像的中心),或者按比例缩放以填充控件并切断多余的部分( ImageLayout.Zoom 将显示带有空白区域的整个图像)。
更新:使用的代码:
Image img = Image.FromFile("xxxx.png");
mycheckbox.BackgroundImage = img;
mycheckbox.BackgroundImageLayout = ImageLayout.Center;
【问题讨论】:
-
你试过 ImageLayout.Strech 吗?您还可以提供一些代码,它会有所帮助:)
-
@msmolcic Stretch 会产生扭曲的图像。代码真的很简单,但我会把它放进去。对于这种特殊情况,我可以使用 checkBox.Image 属性而不是 .BackgroundImage 但它只有在图像大于控件时才有效,并且不是每个控件都有 .Image属性,所以我想看到一个更通用的解决方案。
-
一般来说:当您有可能的值列表时,我建议您全部尝试。其中一个应该可以正常工作。
-
@Mitulátbáti 我做了,但没有一个工作。我想我可能需要沿着 Graphics 路径而不是使用 Control 属性:/
-
要获取橙色框,您可以设置
Image属性而不是BackGroundImage(与ImageAlign = MiddleCenter),但我不知道这是否适合您的所有图像?