我遇到了问题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 变量设置PopUpVisible
为true
。因此,如果我按下按钮,则会显示相同的弹出窗口。直到这一点,一切都很好。
现在我textbox
在弹出窗口中有一个...我单击它textbox
并开始给一些随机的东西小费...如果我按下我的 wpf 用户控件中的按钮,这可以工作!但是,如果我按下按钮,我的WindowsForm
事情就会开始变得奇怪!我在我的文本框中获得了焦点和所有内容,但文本框不会得到我的任何键盘提示。我检查并仔细检查了它......我肯定在文本框中得到了我的“键盘焦点”!
有点卡在这里...有人有想法吗?
亲切的问候。