【问题标题】:WinForms Buttons in relative positions when form resized调整大小时相对位置的WinForms按钮
【发布时间】:2023-03-06 16:16:01
【问题描述】:

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

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

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

  2. Flash 图像 我在 sourceforge 上探索了一些 SharpFlash,作为在我的应用程序中使用的想法。基本上,flash 对象将是表单上的 COM 对象,我将通过按钮单击/等来回通信到 flash 对象返回到 C#。然而,我什至不了解 Flash 来设计它,我也没有真正觉得有必要学习 SharpFlash API,因为这是我看到自己使用它的唯一项目。

  3. PNG Meta 我最初的想法是以命名区域的形式将元数据嵌入原始图像本身,但是,搜索谷歌使这个想法几乎不可能实现找不到以前做过的人。我找到了一些关于如何与 C# 交互和获取元数据的示例,但不完全是如何嵌入它。一位朋友提到我需要使用 Adob​​e Bridge(我认为)。

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

如果有人有更好的解决方案,我也愿意接受一些可能性。

【问题讨论】:

    标签: c# winforms user-interface button


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 2011-03-08
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多