2009-01-22 26 views
19

我需要爲LOB應用程序創建一個基於Web的儀表板工具。本質上,用戶需要能夠登錄到一個網站,這將允許他們查看各種數據位的統計信息,以及查看與其有關的任何通知。我們的主要應用程序是使用WPF爲桌面構建的。我們還需要提供一個將在我們的WPF應用程序中託管的相同儀表板。主要區別在於,在WPF版本中,它們將具有按鈕,用於打開應用程序的其他部分以更改數據或執行任何必要的操作。主持和WPF應用程序內的網頁互動

主要問題是,管理人員只想編寫1個可以在Web和WPF shell中使用的版本。他們不想寫入不同版本的用戶界面。因此,解決方案是爲網絡編寫儀表板,但將其託管在本地用戶的桌面應用程序中,並在瀏覽器中供遠程用戶使用。

因此,這裏是我的問題:

  1. 我如何去承載我的WPF應用程序
  2. 我怎麼會躲在裏面的網頁/刪除基於我是否我的WPF應用程序與內部按鈕裏面的東西像IE瀏覽器?
  3. 如果在瀏覽器中點擊鏈接或按鈕,WPF應用如何對這些點擊作出反應並在應用內打開相關屏幕?
  4. 什麼是更好的方法?

我意識到這個想法可能是不好的,所以不要爲此點燃我。我只是試圖用正確的方法來提供管理。所有建議都歡迎。

謝謝!

回答

35

你可以在一個WPF應用程序使用添加在.NET 3.5 SP1在WebBrowser控件託管網頁:

<Grid> 
    <WebBrowser Name="browser" /> 
</Grid> 

並在代碼隱藏,你必須開放的設置您的頁面,

public partial class Window1 : Window 
{ 
    public Window1() 
    { 
     InitializeComponent(); 

     string uri = AppDomain.CurrentDomain.BaseDirectory + "TestPage.html"; 
     this.browser.Navigate(new Uri(uri, UriKind.Absolute)); 
     this.browser.ObjectForScripting = new ScriptingHelper(); 
    } 

    [ComVisible(true)] 
    public class ScriptingHelper 
    { 
     public void ShowMessage(string message) 
     { 
      MessageBox.Show(message); 
     } 
    } 
} 

最後在你的頁面,您必須使用的window.external像下面調用代碼:

對象(這應該是COM可見)是從Java腳本調用
+0

這是WPF唯一的例子是爲我工作,謝謝。 – 2018-02-09 13:54:55

相關問題