我有一个简单的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中这样做。
答案 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