C# 如何更改PictureBox内图像的原点?
Flash有一个与此完全相同的选项,您可以在其中设置注册点: 当我尝试做任何事情时,通过扩展面板设置图像的位置,尝试在PictureBox中偏移图像。。。我找不到任何东西可以做到这一点,因为: 例如,这: 如果在C中没有办法做到这一点,那也没关系。我不理解这项技术,并将与MainMa合作。通过以下两个属性提供图片的内容:C# 如何更改PictureBox内图像的原点?,c#,winforms,C#,Winforms,Flash有一个与此完全相同的选项,您可以在其中设置注册点: 当我尝试做任何事情时,通过扩展面板设置图像的位置,尝试在PictureBox中偏移图像。。。我找不到任何东西可以做到这一点,因为: 例如,这: 如果在C中没有办法做到这一点,那也没关系。我不理解这项技术,并将与MainMa合作。通过以下两个属性提供图片的内容: PictureBox.Size.Height PictureBox.Size.Width 您可以通过以下操作设置: PictureBox.Location = new
PictureBox.Size.Height
PictureBox.Size.Width
PictureBox.Location = new Point(x, y)
因此,要改变图片,请执行以下操作:
private void CenterPicture(PictureBox picture)
{
if (picture == null)
{
throw new ArgumentNullException(
"picture",
"The picture should be specified.");
}
var x = picture.Location.X - picture.Size.Width / 2;
var y = picture.Location.Y - picture.Size.Height / 2;
picture.Location = new Point(x, y);
}
注意:记得检查。此属性的某些部分可能会调整图像的大小,这将导致在应用
中心图片
方法时图像未居中。如果您知道图片盒
的尺寸,则可以自己解决此问题。您如何绘制资产?它们是您放置在表单上的控件,还是在OnPaint事件处理程序中手动绘制的控件?是的,我同意,而且我知道它们。我首先寻找翻译图片盒的图像
的方法,但没有成功。我还试图制作一个面板
,其中包含一个图片盒
,但当我将图片盒
的位置设置为负值时,我不再看到图片盒
,但我可以看到面板
。感谢OnPaint提醒。现在,我基本上只是在面板
的“画布”上添加了一大堆图片盒
,我可以通过手动上下移动鼠标来移动它们。在更熟悉的语言中,我会改变“组”的主播/来源来实现这一点。谢谢MainMa。我希望我可以不必到处处理这种额外的计算,因为编辑处理的是圆形实体,假设它们已经居中,将使所有内容保持整洁和统一。@Clark:我不确定我是否理解(即使在阅读了对原始问题的评论之后)。如何创建您自己的类CenteredPictureBox
,该类继承自PictureBox
,并根据图片的位置和大小自动调整图片的位置?这意味着您可以像使用任何其他对象一样使用该对象,而不必“到处处理这个额外的计算”。