2011-03-13 43 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();

希望它有帮助!