我在Silverlight 4(测试版)中有一个简单的
ChildWindow
弹出窗口.
我尝试了几件事:
以下代码似乎没有做任何事情.在“加载”之后我不认为控件已经准备就绪了.
private void ChildWindow_Loaded(object sender,RoutedEventArgs e) { textBox1.Focus(); }
这有效,但其笨重.
private void ChildWindow_GotFocus(object sender,RoutedEventArgs e) { if (_firstTime == true) { textBox1.Focus(); _firstTime = false; } }
有没有更好的方法?我总是不得不在WinForms中做这样可怕的事情,但希望不再需要.
注意:此similar question仅适用于浏览器.它建议调用System.Windows.browser.HtmlPage.Plugin.Focus();这不起作用,实际上在Silverlight 4 beta浏览器上运行时会出错.
解决方法
我在SilverLight 4(OOB)中遇到了同样的问题,我注意到选项卡序列会将焦点设置为我无法看到的控件.似乎正在发生的事情是焦点被设置为您的控件(选项卡序列中的第一个),然后由于某种原因焦点移动到ContentControl(name =“content”),其中(我认为)是父的孩子的窗户.
默认情况下,ContentControl的IsTabStop = true.
看到….
Why would I want IsTabStop set to true on a ContentControl?
要为应用中的所有ContentControl设置ContentControl.IsTabStop = false,请将其添加到styles.xaml中.
<Style targettype="ContentControl" > <Setter Property="IsTabStop" Value="false"/> </Style>
MainPage上的选项卡序列也会出现同样的问题.这种风格也会解决这个问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。