2011-03-13 40 views
0

當我的silverlight應用程序加載了Silverlight子窗口時彈出並要求用戶登錄。我想將重點放在子窗口中的用戶名字段上。這不起作用。我與經典在silverlight中設置登錄子窗口的焦點

loaded += event... 

試過我讀到另一篇文章here的問題,這是現在Silverlight控件託管就像一個對象,而不是在<asp:silverlight>所以我有問題越來越的JavaScript工作。我嘗試在Silverlight .asp頁面上的對象上放置一個id,但沒有工作。 有沒有人有任何想法如何在SL 4中的子窗口上設置焦點?

+0

「經典」加載事件是什麼樣的?如果您向我們展示您嘗試的實際代碼,這將有所幫助。 – AnthonyWJones 2011-03-13 13:04:58

+0

我有一個稱爲Loginwindow的子窗口,它是最後加載的子窗口。在那個孩子課上,我已經連接了Loaded + = new RoutedEventHandler(LoginWindow_Loaded);然後在該方法中添加loginName.focus();這似乎是問題在於瀏覽器不關注實際的Silverlight控件。因爲只要我點擊silverlight窗口中的任何地方,我就會得到正確的關注。 – Fore 2011-03-13 13:18:44

+0

嘗試編輯您的問題以包含代碼,評論不是提供更多詳細信息的好地方。還顯示嘗試將焦點的Silverlight對象元素在JavaScript中 – AnthonyWJones 2011-03-13 13:21:38

回答

1

我設法解決了這個問題,從我發佈在the original post 的鏈接中得到了一點幫助。問題是我的silverlight應用程序在載入時沒有得到重點。因此,通過添加JavaScript的問題得到有效解決:

<script type="text/javascript"> 
    window.onload = function() { 

     document.getElementById('silverObj').focus(); 
    } 
</script> 

<body> 
<form id="form1" runat="server" style="height:100%"> 
<div id="silverlightControlHost"> 
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="silverObj" width="100%" height="100%"> 

這樣我能得到重點Silverlight控件,然後我就迷上了加載事件對我childwindow關注我的用戶名。

0

在構造函數中添加以下代碼:

System.Windows.Browser。 HtmlPage.Plugin.Focus();

希望它有幫助!