工具栏在 E4 中无法正确缩放

Toolbar does not scale correctly in E4

我有一个带有一些自定义工具栏小部件的 E4 应用程序。当应用程序 运行 in WIndows 10 没有 DPI 缩放时,一切看起来都很好。更改 DPI 设置后,应用程序工具栏未完全显示。

正确观点:

启用缩放:

application.e4xmi 看起来像:

负责创建小部件的 class 如下所示:

public class OpenOrderDropDown {

  @Inject
  private IEclipseContext context;

  private Combo combo;

  private static final String[] ITEMS = {"Default", "Planning", "Open JobOrders", "Stock Units", "To Schedule"};

  @PostConstruct
  public void createControls(final Composite parent) {

    RowLayout layout = new RowLayout();
    parent.setLayout(layout);

    Label label = new Label(parent, SWT.LEFT);
    label.setText("View: ");

    combo = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
    combo.setItems(ITEMS);

    combo.select(0);

    combo.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {

        IEventBroker eventBroker = context.get(IEventBroker.class);
        eventBroker.post("openOrdersView", combo.getText());

      }
    });
  }

  @Inject
  @Optional
  public void changeSelection(@UIEventTopic("changeOpenOrdersView") String selection) {
    if (selection == null || selection.isEmpty()) {
      selection = "Default";
    }

    if (combo != null && !combo.isDisposed()) {
      combo.select(combo.indexOf(selection));
    }

  }

}

有什么方法可以改变工具栏中小部件的高度吗?我知道如何计算 DPI 变化,但无法在任何组件上设置任何 heigt/width 值。

将 ToolControl 项移到 ToolBar 之外。 ToolBar 内的控件不会调整栏的大小,但在 ToolBar 之外时,它们应该可以调整 TrimBar 的大小。