UcGplotShow.xaml.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using System.Windows;
  2. using System.Windows.Controls;
  3. using System.Windows.Data;
  4. using System.Windows.Documents;
  5. using System.Windows.Input;
  6. using System.Windows.Media;
  7. using System.Windows.Media.Imaging;
  8. using System.Windows.Navigation;
  9. using System.Windows.Shapes;
  10. using CefSharp;
  11. using CefSharp.Wpf;
  12. using CEFSharpWpf;
  13. namespace CEFSharpWPF
  14. {
  15. /// <summary>
  16. /// UcGplotShow.xaml 的交互逻辑
  17. /// </summary>
  18. public partial class UcGplotShow : UserControl
  19. {
  20. public string URL { get; set; } = "http://172.16.0.181:8888/#/demo";
  21. public UcGplotShow()
  22. {
  23. OneTimeLoad.Init();
  24. InitializeComponent();
  25. this.Loaded += UcGplotShow_Loaded;
  26. }
  27. private void UcGplotShow_Loaded(object sender, RoutedEventArgs e)
  28. {
  29. var re = new SgRequestHandle();
  30. webBrowser.RequestHandler = re;
  31. //webBrowser.Address = URL;
  32. }
  33. /// <summary>
  34. /// 重新加载页面
  35. /// </summary>
  36. /// <param name="url"></param>
  37. private void ReloadUrl(string url)
  38. {
  39. if (webBrowser.IsBrowserInitialized)
  40. {
  41. webBrowser.Address = URL;
  42. webBrowser.Load(url);
  43. }
  44. }
  45. /// <summary>
  46. /// 强制刷新
  47. /// </summary>
  48. public void Refresh()
  49. {
  50. if (webBrowser.IsBrowserInitialized)
  51. {
  52. webBrowser.Address = URL;
  53. webBrowser.Load(URL);
  54. }
  55. }
  56. public void Show(string url, string title = "")
  57. {
  58. URL = url;
  59. ReloadUrl(url);
  60. }
  61. #region 封装交互
  62. /*
  63. * 不想直接饮用程序集,将公开方法封装一遍
  64. */
  65. /// <summary>
  66. /// 获取浏览器选项
  67. /// </summary>
  68. public ChromiumWebBrowser Browser
  69. {
  70. get { return webBrowser; }
  71. }
  72. /// <summary>
  73. /// 注册绑定对象
  74. /// </summary>
  75. /// <param name="objName"></param>
  76. /// <param name="obj"></param>
  77. public void RegisterJsObject(string objName, object obj)
  78. {
  79. Browser.RegisterJsObject(objName, obj, new BindingOptions() {CamelCaseJavascriptNames = false});
  80. }
  81. /// <summary>
  82. /// 执行js函数
  83. /// </summary>
  84. /// <param name="fun"></param>
  85. public void ExecuteJsFun(string fun)
  86. {
  87. Browser.ExecuteScriptAsync(fun);
  88. }
  89. #endregion
  90. }
  91. }