Example #1
0
        public WinJsForm(WPFJsSettings settings)
        {
            InitializeComponent();
            this.settings = settings;
            Thread t = new Thread(new ParameterizedThreadStart(ServerStart));

            t.Start(settings.Port);
            Setting(settings);
            RegisterEvent();
        }
Example #2
0
        static void Main(string[] args)
        {
            //初始化程序
            Start.App app = new Start.App();
            app.InitializeComponent();

            //读取配置文件
            WPFJsSettings winjsSettings = WPFJsSettings.ParseFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"assets\settings.json"));

            WinJsForm form = new WinJsForm(winjsSettings);

            app.MainWindow = form;
            app.Run(form);
        }
Example #3
0
        public void Setting(WPFJsSettings settings)
        {
            #region 游览器设置
            //var Cefsettings = new CefSettings
            //{
            //    Locale = "zh-CN",
            //    AcceptLanguageList = "zh-CN",
            //    MultiThreadedMessageLoop = true
            //};
            //Cefsettings.CefCommandLineArgs.Add("disable-gpu", "1");
            //Cefsettings.CefCommandLineArgs.Add("force-device-scale-factor", "1");
            //Cef.Initialize(Cefsettings);
            //var webbrowser = new ChromiumWebBrowser(settings.Url);
            //webbrowser.MenuHandler = new MenuHandler();
            //var winform = new WindowsFormsHost()
            //{
            //    Child = webbrowser
            //};

            ////绑定,和js交互的关键,注册一个JsObj,这个可以自定义,然后对于js来说,第二个参数this就代表了JsObj
            ////this.Content = winform;
            //wrap.Children.Add(winform);

            var Cefsettings = new CefSettings
            {
                Locale                   = "zh-CN",
                AcceptLanguageList       = "zh-CN",
                MultiThreadedMessageLoop = true
            };

            Cefsettings.CefCommandLineArgs.Add("disable-gpu", "1");
            Cefsettings.CefCommandLineArgs.Add("force-device-scale-factor", "1");
            CefSharp.Cef.Initialize(Cefsettings);
            webBrowser = new CefSharp.Wpf.ChromiumWebBrowser();
            webBrowser.BrowserSettings.WebSecurity = CefState.Disabled;
            webBrowser.Height  = settings.Height;
            webBrowser.Width   = settings.Width;
            webBrowser.Address = settings.Url;
            //webBrowser.IsBrowserInitializedChanged += IsBrowserInitializedChanged;
            webBrowser.FrameLoadEnd += new EventHandler <FrameLoadEndEventArgs>(FrameEndFunc);
            webBrowser.MenuHandler   = new MenuHandler();
            wrap.Children.Add(webBrowser);


            #endregion

            #region 窗体设置
            this.Title  = settings.Title;  //标题
            this.Height = settings.Height; //高度
            this.Width  = settings.Width;  //宽度
            if (settings.CanResize)
            {
                this.ResizeMode = ResizeMode.CanResizeWithGrip;//是否可以拉伸
            }
            //自定义头部
            for (int i = 0; i < settings.CustomBorders.Length; i++)
            {
                Rectangle rectangle = new Rectangle();
                rectangle.Height  = settings.CustomBorders[i].Height;
                rectangle.Width   = settings.CustomBorders[i].Width;
                rectangle.Fill    = new SolidColorBrush(Colors.Gray);
                rectangle.Opacity = 0.01;
                Canvas.SetLeft(rectangle, 0);
                Canvas.SetTop(rectangle, 0);
                rectangle.MouseLeftButtonDown += MouseLeftDown;
                wrap.Children.Add(rectangle);
            }


            #endregion
        }