1

我遇到了问题Windows.Forms.ElementHost。在主机中,我放置了一个 WPF UserControl,其中我得到了一个Popup.

一些代码:

<UserControl
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       mc:Ignorable="d" 
       d:DesignHeight="300" d:DesignWidth="380">
    <Grid>
        <Popup x:Name="TestPopup"
              IsOpen="{Binding PopupVisible,UpdateSourceTrigger=PropertyChanged}" 
              Placement="Center" 
              StaysOpen="False" Width="200" Height="50">
            <Grid>
                <TextBox/>
            </Grid>
        </Popup>
        <Button Click="Button_Click" />
    </Grid>
</UserControl>

所以在这个例子中,我得到的只是 a ElementHost、 aUserControl和 a Popup(以及一个 ViewModel ,其中实现了弹出窗口的 IsOpen 变量PopUpVisible)。

现在我得到了两个Buttons……一个在UserControl我的 WindowsForm 中,一个在我的带有 ElementHost 的 WindowsForm 中。

这两个按钮中的每一个都将 IsOpen 变量设置PopUpVisibletrue。因此,如果我按下按钮,则会显示相同的弹出窗口。直到这一点,一切都很好。

现在我textbox在弹出窗口中有一个...我单击它textbox并开始给一些随机的东西小费...如果我按下我的 wpf 用户控件中的按钮,这可以工作!但是,如果我按下按钮,我的WindowsForm事情就会开始变得奇怪!我在我的文本框中获得了焦点和所有内容,但文本框不会得到我的任何键盘提示。我检查并仔细检查了它......我肯定在文本框中得到了我的“键盘焦点”!

有点卡在这里...有人有想法吗?

亲切的问候。

4

0 回答 0