当窗体调整大小时,WinForms按钮处于相对位置

时间:2010-05-26 18:24:26

标签: c# winforms user-interface button

我已经搜索了两天试图找到解决方案。我需要解决的问题是:

我有一个用C#编写的WinForms应用程序。它的设计非常符合我希望它有两列(SplitContainer - 设置如Windows资源管理器,侧边栏等)。非侧边栏面板将设置我们的计算机实验室的图像。但是,我实施的方式还没有完全确定。

  1. 每台计算机的按钮我基本上会将按钮放在背景图像上的每个计算机站上。这些按钮需要保留在背景图像的相对位置。我已经使用左侧和右侧的按钮锚点实现了这一点。但是,这会调整按钮的宽度,使窗体最大化。

  2. Flash图像我在sourceforge上探讨了一些SharpFlash作为在我的应用程序中使用的想法。基本上,flash对象将是表单上的COM对象,我会通过按钮点击/等来回传递给flash对象回C#。但是,我甚至不知道Flash是否设计它,我也不觉得有必要学习SharpFlash API,因为这是我认为自己使用它的唯一项目。

  3. PNG Meta 我最初的想法是将原始图像中的元数据以命名区域的形式嵌入,然而,搜索谷歌几乎不可能实现这个想法,因为我可以找不到以前做过的人。我已经找到了一些关于如何与C#交互并获取元数据的示例,但并不确切地知道如何嵌入它。一位朋友提到我需要使用Adobe Bridge(我认为)。

  4. 突出显示图片区域我希望能够突出显示计算机,向用户表明当前选择了此计算机,这样他们就不必真正猜出哪一台是选中(即使它通过C#标签说明选择了哪一个;最终用户是视觉人物)

  5. 如果有人有更好的解决方案,我也会对某些可能性持开放态度。

1 个答案:

答案 0 :(得分:2)

就你的锚定而言,如果你只锚定顶部,按钮将保持相对意义,如果你将它们分组在表单的中心,如果它的大小调整,它们将保持在中心而不调整按钮的大小。我认为突出图像的最简单方法是拥有2张图像。一个图像是“正常”未使用的pc,另一个图像是按钮的“使用中”图像。然后,您可以使用ImageIndex属性动态更改图像。当然,您需要一个ImageList才能工作。