最近在开发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。
时间: 2024-10-15 21:06:18