我一直在寻找倾听,当用户单击应用程序窗口右上角的Windows 7或Windows 10最大化按钮来最大化E4 RCP应用程序时。最终,我想在调整TreeViewer布局的大小时调整TreeColumns的大小。我在TreeViewer中的Tree上有一个侦听器,它侦听Tree大小的变化 - 它使用ControlResiste(ControlEvent e)方法使用ControlListener。如果点击并拖动调整应用程序窗口的大小,这很好。但是当我点击最大化按钮时,布局会改变大小,列不会。我怀疑听众为时已晚,并且在最大化/取消最大化之前进行重绘之前,没有检测到调整大小。E4 RCP应用程序监听最大化或最小化
也尝试使用Iconify和deIconify方法使用Listener,它们在这里不起作用,因为它们处理Minimize和un-Minimize。
还尝试使用IPartListener进行活动,可见等....这也发生在调整大小的位置,但不在正确的时间触发正确重绘,就像同样的问题。
我真正想要的是一个解决方案,最大化屏幕,检查布局的大小(这是我以为我在做什么),然后相应地计算列大小。但是,这不会通过单击最大化或取消最大化来触发,只有通过拖动和调整大小才能成功。也许这只是我在这里想念的东西。预先感谢您的建议。
- 马福
你可以随时调用'Control.redraw()'如果你认为一个重绘是必需的。 –
如果通过'ColumnWeightData'使用'TreeColumnLayout',布局应该自动处理所有的大小调整。 –