键盘焦点无法在弹出窗口中添加的文本框中工作

时间:2011-11-03 08:41:32

标签: wpf popup

当我们在WindowsFormHost中选择任何TreeNode然后尝试在弹出窗口中显示的文本框中键入文本时,不允许添加文本,因为焦点不会从TreeNode中丢失。我可以就此得到建议吗?

代码段:

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:wind="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Popup Width="250" Height="300" StaysOpen="True" IsOpen="True">
            <TextBox Width="100" Height="100"/>
        </Popup>
        <WindowsFormsHost Width="200">
            <wind:TreeView>
                <wind:TreeView.Nodes>
                    <wind:TreeNode Text="Node 1"/>
                    <wind:TreeNode Text="Node 2"/>
                    <wind:TreeNode Text="Node 3"/>
                    <wind:TreeNode Text="Node 4"/>
                </wind:TreeView.Nodes>
            </wind:TreeView>
        </WindowsFormsHost>
    </Grid>
</Window>

示例链接:

http://www.syncfusion.com/downloads/Support/DirectTrac/85553/WpfApplication21123581705.zip

1 个答案:

答案 0 :(得分:0)

弹出窗口中的控件并不是Popup父母的一部分。

所以你必须首先将焦点设置为Popup本身,然后在Popup中找到TextBox控件并将其聚焦(通过x找到Popup-child:Name并设置焦点)