1

我正在尝试创建一个面板,上面有一组“按钮”。

这些按钮应具有以下行为:

  1. 外观类似于标签(带有圆形边缘)
  2. 包含一个红十字以从面板中删除过滤器/标签,类似于 Internet Explorer 选项卡具有嵌入式十字以关闭单个选项卡的方式。
  3. 允许用户点击标签并像普通按钮一样响应(只要点击不在红十字内)

数字 1 没问题,这只是外观,但是,关于数字 2 和 3,我不确定是否已经有代码可以做类似的事情……如果可以避免的话,我真的不想重新发明轮子它!

我的问题是:有谁知道基础设施中是否有一些东西可以简单地做到这一点,还是我需要通过子类化winform按钮自己编写这个?

提前致谢!

4

3 回答 3

1

这是对现有项目的新开发还是维护?

如果是维护,您将面临更艰难的时期。您将实现一个UserControl,可能被分割成两个按钮。使用对接使行为尽可能正确。最右边的按钮将包含您的十字图像;左侧(在您调整控件大小时需要自动扩展)将包含您的主要按钮行为。玩弄视觉风格,直到你把它们弄好(例如,删除边框等)。

如果这是一项新开发,并且您还没有深入了解它,您可能会考虑使用 Windows Presentation Framework (WPF) 而不是 WinForms。构建控件并让它看起来完全符合您的要求会更容易。WPF 包含一个极其强大的控件合成系统,它允许您将多个控件叠加在一起并让它们完全按照您的预期工作,并且它还具有允许开箱即用的完全可视控制的额外优势。

无论哪种方式,这都比放入外部组件更费力……我已经使用 Infragistics 多年了,我想不出他们有什么可比的。最接近但当您正在构建 MDI 应用程序并且这些控件用于窗口导航时,是选项卡式 MDI 窗口管理工具——在那里,只有选项卡(替换窗口标题栏)具有此行为。

于 2009-05-26T21:56:40.517 回答
0

我不认为基础设施可以做这样的事情。UltraButton 控件不能。实现自己的控件并不难。

于 2009-05-26T21:43:01.590 回答
0

您可能必须为此类工作进行服装控制。

于 2009-06-01T18:26:50.830 回答