最近在开发Silverlight时,有个页面希望一进入就把焦点设定在一个TextBox上,让使用者可以直接就输入文字。
在Silverlight中要设定焦点只需设置"控制项"的Focus()方法即可,不过如果是要设定页面一进入的焦点(预设焦点)的话,必须满足以下两个条件
- 先设定Plugin焦点,再设定"控制项"控制项的焦点
- 页面初始化时存在异步,将预设焦点的代码放在异步中
预设焦点的代码如下:
using System.Windows.Controls;
using System.Windows.Browser; //使用HtmlPage要先引用這行
namespace SilverlightApplication1
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.Loaded += new System.Windows.RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
HtmlPage.Plugin.Focus(); //要有這行才能在一進入頁面就成功設定控制項焦點
textBox1.Focus(); //接著就呼叫要設定焦點的控制項Focus()方法
}
}
}
注意:使用HtmlPage前需要先引用System.Windows.Browser。