打开子窗口时,将焦点设置在用户控件的文本框中

时间:2013-09-14 05:27:41

标签: wpf xaml wpf-controls

我有一个简单的WPF窗口,它托管用户控件。用户控件包含标签,TextBox和几个按钮。单击确定为默认按钮和取消按钮。我从父窗口启动此对话框/窗口。我想要实现的是当这个对话框启动时,TextBox应该有输入控件。我试图将标签索引设置为0,但这似乎不起作用。

当窗口打开时,我必须按一次tab才能在编辑框中输入控件。这是我的TextBox的xaml看起来像

<TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" VerticalContentAlignment="Center" AcceptsReturn="False" TabIndex="0"></TextBox>

此外,我希望此窗口在其父窗口的中心打开。我已经设置了

<Window .......   WindowStyle="ToolWindow" Topmost="True" ShowInTaskbar="False" ResizeMode="NoResize" WindowStartupLocation="CenterOwner">

在多个屏幕上,窗口始终在主监视器上打开。我可以在父母窗口的中心打开它吗?

P.S:我希望在WPF中这样做。

1 个答案:

答案 0 :(得分:1)

关于第一个问题,请写下以下代码:

public YourChildWindow()
{
    InitializeComponent();

    YourTextBox.Focus();
}

第二个问题:您必须将子窗口的StartupLocation设置为CenterOwner 将子窗口的Owner设置为ParentWindow之前显示子窗口。例如,在父窗口中编写此代码:

Window ownedWindow = new Window();
ownedWindow.Owner = this;
ownedWindow.Show();

根据http://msdn.microsoft.com/en-us/library/system.windows.window.owner.aspx