c# winform 界面设置了BackgroundImage 适应界面大小问题

surlew 2012-06-05 05:03:44
RT:

设置了BackgroundImageLayout属性为Stretch,这样窗体改变大小,图片会相应改变,问题来了,我要根据图片的内容来点击进行操作,放置button的话,窗体改变大小,button的位置就和图片背景里面的内容位置对不到了,大家有什么好的办法处理这个问题吗?

或者怎么可以取得鼠标所在图片的区域位置?
...全文
1550 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
surlew 2012-06-06
  • 打赏
  • 举报
回复
怎么我的图片背景 在最小化之后再次最大化,位置会改变的啊 啊啊啊啊啊
surlew 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
你还是找个规则,可以计算坐标,这样才能不管尺寸如何,都能计算得到点击区域的坐标
[/Quote]

我也是这样的想的,但是这个规则不好找,有没什么建议之类的
bdmh 2012-06-06
  • 打赏
  • 举报
回复
你还是找个规则,可以计算坐标,这样才能不管尺寸如何,都能计算得到点击区域的坐标
surlew 2012-06-06
  • 打赏
  • 举报
回复
有没有什么方法获取鼠标所在背景图的相对位置 针对不同分辨率的比例之类的
surlew 2012-06-06
  • 打赏
  • 举报
回复
我的BackgroundImage 是设置的窗体背景 按照设置Anchor属性,根本实现不了 Anchor对于布局其实很差的
surlew 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]
引用 15 楼 的回复:
引用 14 楼 的回复:
比如原先窗体是 500*500 按钮是 70*20 ,位置是 100,400 ,窗体拉大成 550*500 后,长度多了 10% ,那按钮长度就乘以 110%,变为 77,左边距乘以 110%,变为 110 ,与拉伸后的图像基本能保持一致


呵呵,现在我固定它的区域了,但是现在的问题是当窗体最小化之后,再还原,窗体的statusStr……
[/Quote]

找到问题了,是因为把那个最大化设置为false就有这个原因,可能也是微软的bug吧

做完手头的事情就来结贴
__天涯寻梦 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]
引用 14 楼 的回复:
比如原先窗体是 500*500 按钮是 70*20 ,位置是 100,400 ,窗体拉大成 550*500 后,长度多了 10% ,那按钮长度就乘以 110%,变为 77,左边距乘以 110%,变为 110 ,与拉伸后的图像基本能保持一致


呵呵,现在我固定它的区域了,但是现在的问题是当窗体最小化之后,再还原,窗体的statusStrip状态栏不见了,这个是bu……
[/Quote]
你有没有修改 Form.Controls 里控件的先后顺序,使得别的控件把状态栏盖掉了?
surlew 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
比如原先窗体是 500*500 按钮是 70*20 ,位置是 100,400 ,窗体拉大成 550*500 后,长度多了 10% ,那按钮长度就乘以 110%,变为 77,左边距乘以 110%,变为 110 ,与拉伸后的图像基本能保持一致
[/Quote]

呵呵,现在我固定它的区域了,但是现在的问题是当窗体最小化之后,再还原,窗体的statusStrip状态栏不见了,这个是bug还是什么
__天涯寻梦 2012-06-06
  • 打赏
  • 举报
回复
比如原先窗体是 500*500 按钮是 70*20 ,位置是 100,400 ,窗体拉大成 550*500 后,长度多了 10% ,那按钮长度就乘以 110%,变为 77,左边距乘以 110%,变为 110 ,与拉伸后的图像基本能保持一致
surlew 2012-06-06
  • 打赏
  • 举报
回复
现在我改用针对不同分辨率 固定区域了,但是有一个问题,当窗体最小化之后,再还原,窗体的statusStrip状态栏不见了
「已注销」 2012-06-05
  • 打赏
  • 举报
回复
我看了一下,你这种情况,在窗体变化的时候,如果你的控件都设置了Anchor属性的话,不会出现这个问题,反而会出现在窗体移动或者拖动时,窗体会出现闪屏。体验性不好。
__天涯寻梦 2012-06-05
  • 打赏
  • 举报
回复
按钮是长方形的吧,窗体初始化的时候就把窗体尺寸和放好位置的按钮的尺寸和位置记录,以后窗体大小改变,将改变后的窗体尺寸和原先的窗体尺寸按钮位置尺寸进行计算,能得出按钮的现在应该变成的尺寸和位置
熙风 2012-06-05
  • 打赏
  • 举报
回复
private void SendEmail_MouseMove(object sender, MouseEventArgs e)
{
richTextBox1.Text+="X:"+Cursor.Position.X+" Y:"+ Cursor.Position.Y+"\r\n";
}
「已注销」 2012-06-05
  • 打赏
  • 举报
回复
你好,我们在做这个的时候,直接将窗体大小设置固定。

如果你一定要这样做,建议你那个背景图片不要那样切,把需要放按钮的地方单独弄出来。然后设置图片按钮的anchor
  • 打赏
  • 举报
回复
就算第一次能把按钮和它对应的图片位置联系起来,可是图片大小会变啊,位置就变了,
找不到图片的一个固定的属性来对应按钮的事件
surlew 2012-06-05
  • 打赏
  • 举报
回复
发现现在csdn没那么活跃了,以前有问题大家都抢答的....
cnfixit 2012-06-05
  • 打赏
  • 举报
回复
要搁我啊,就把窗口大小定死……

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧