【发布时间】:2017-05-29 15:53:45
【问题描述】:
我一直在寻找我的 E4 RCP 应用程序何时通过用户单击应用程序窗口右上角的 Windows 7 或 Windows 10 最大化按钮而最大化。最终,我想在调整 TreeViewer 布局大小时调整 TreeColumns 的大小。我在 treeViewer 中的 Tree 上有一个侦听器,它侦听 Tree 大小的变化 - 它使用 ControlListener 使用 controlResized(ControlEvent e) 方法。如果我单击并拖动调整应用程序窗口的大小,这会很好。但是当我单击最大化按钮时,布局会改变大小,而列不会。我怀疑侦听器为时已晚,并且在最大化/取消最大化重绘之前未检测到调整大小。
还尝试将侦听器与 Iconify 和 deIconify 方法一起使用,它们在这里不起作用,因为它们处理最小化和取消最小化。
还尝试将 IPartListener 用于活动、可见等......这也发生在调整大小的地方,但没有在正确的时间触发以正确重绘,就像同样的问题。
我真正想要的是最大化屏幕、检查布局大小(这是我认为我正在做的)然后相应地计算列大小的解决方案。但是,这不会通过单击最大化或取消最大化来触发,只有通过拖动和调整大小才能成功。也许这只是我在这里想念的东西。提前感谢您的建议。
- 马夫
【问题讨论】:
-
如果您认为需要重绘,您可以随时致电
Control.redraw()。 -
如果您将
TreeColumnLayout与ColumnWeightData一起使用,布局应该会自动处理所有大小调整。
标签: tree resize rcp e4 maximize