如何在 egui (eframe) Rust 中制作自己的 window 框架

How do I make my own window frame in egui (eframe) Rust

以下是我如何启动我的应用程序并删除 window 框架:

    let app = RustClicker::default();
    let mut native_options = eframe::NativeOptions::default();
    native_options.decorated = false; // I remove window frame here
    eframe::run_native(Box::new(app), native_options);

我自己制作了这样的顶板:

        egui::TopBottomPanel::top("decoration").show(ctx, |ui| {
            egui::menu::bar(ui, |ui| {
                ui.with_layout(egui::Layout::left_to_right(), |ui| {
                    ui.label("");
                });

                ui.with_layout(egui::Layout::right_to_left(), |ui| {
                    if ui.button("").clicked() {
                        frame.quit();
                    }
                    let change_theme = ui.button("");
                    if change_theme.clicked() {
                        if self.dark_theme {
                            self.dark_theme = false;
                        }
                        else {
                            self.dark_theme = true;
                        }
                    }
                });
            });
        });

但我无法通过按住鼠标按钮移动它,TopPanel 是否可以解决此问题?

找到了一个例子https://github.com/emilk/egui/tree/master/examples/custom_window_frame这个可行,而且角也变圆了