简短版:以下解决方案:How Do I Give a Textbox Focus in Silverlight?
似乎无法工作,因为像Focus这样的功能以及像Focusable DON这样的属性可以用于银光,而且只有.net显然存在。
背景/长版:所以我一直试图让我的XNA游戏在Silverlight上工作。移植它是一场噩梦,但我设法以某种方式做到了。目前我想使用ViewBox,所以我的游戏与玩家浏览器一样大,而不是设定尺寸。当我尝试这样做时,它可以工作,但是不可能向游戏发送任何键盘命令。我很确定这会让我无法集中注意力。当我谷歌如何给予焦点时,它给了我这样的链接,人们说这些链接使用像.focus()这样的函数,这些函数显然只有在Silverlight 5上显示。例如,转到此处:http://msdn.microsoft.com/en-us/library/system.windows.controls.control(v=vs.110).aspx 它显示了.NET 4.5版本。如果您将其更改为顶部的silverlight,则所有不错的功能和设置都会消失。我在这里错过了什么吗?如何在Silverlight中访问这些类的.Net版本?如果不可能,为什么上面提到的所有答案都使用Focus()等?
答案 0 :(得分:0)
假设C#...
在您的silverlight页面上,从写代码菜单中选择您的Page_Created
添加以下内容:
partial void YourPage_Created() // this line should be autogenerated
{
this.FindControl("YourControl").ControlAvailable += YourFieldAvailable;
}
private void YourFieldAvailable(object sender, ControlAvailableArguments e)
{
((System.Windows.Controls.Control)e.Control).GotFocus += YourRoutine;
}
private void YourRoutine(object sender, System.Windows.RoutedEventArgs e)
{
// do your focus specific code in here
}
现在,您将拥有指定控件的自定义焦点事件。 希望这会有所帮助:)