加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何为SWT WPF程序添加主题?

发布时间:2020-12-15 02:32:26 所属栏目:Java 来源:网络整理
导读:我想在我的 java应用程序的 Windows版本上使用WPF.我发现使用SWT很容易做到这一点,它也支持SWT元素的wpf ResourceDictionary XAML( please see this). SWT WPF实施对我来说运作良好,但我无法找到如何将 WPF theme放在上面.一些与org.eclipse.swt.widgets.But
我想在我的 java应用程序的 Windows版本上使用WPF.我发现使用SWT很容易做到这一点,它也支持SWT元素的wpf ResourceDictionary XAML( please see this). SWT WPF实施对我来说运作良好,但我无法找到如何将 WPF theme放在上面.一些与org.eclipse.swt.widgets.Button相同的SWT小部件都有setData方法,但其中一些像org.eclipse.swt.widgets.Display那样没有那个方法. shell上的setDate方法也不会在整个窗口上设置主题.

那么如何为SWT WPF程序的整个窗口添加主题呢?

这是一个示例代码:

import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MenuItem;

public class MainForm {

    protected Shell shell;

    public static void main(String[] args) {
        try {
            MainForm window = new MainForm();
            window.open();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void open() {
        Display display = Display.getDefault();
        createContents();
        shell.open();
        shell.layout();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
    }

    protected void createContents() {
        shell = new Shell();
        shell.setData(
                "ResourceDictionary","ExpressionDark.xaml");
        // theme not applied on entire window,just buttons

        shell.setSize(450,300);
        shell.setText("Window Title");

        Button button = new Button(shell,SWT.FLAT);
        button.setText("Button");
        button.setSize(250,50);
        button.setBounds(0,50,250,50);

        Menu menu = new Menu(shell,SWT.BAR);
        shell.setMenuBar(menu);

        MenuItem mntmNewSubmenu = new MenuItem(menu,SWT.CASCADE);
        mntmNewSubmenu.setText("New SubMenu");

        Menu menu_1 = new Menu(mntmNewSubmenu);
        mntmNewSubmenu.setMenu(menu_1);

    }
}

解决方法

SWT WPF is no longer supported.因此最好不要使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读