在弹出窗口中使用WinFormElementHost

3

首先,我对我的英语基础很弱感到抱歉。

我想在一个弹出窗口中展示我的WinForm用户控件,但是WinFormElementHost并没有显示出来!我该怎么办?

编辑:

这是我的代码,XAML代码用于定义弹出窗口和我的用户控件类。

        <Popup Name="popupDate" PopupAnimation="Scroll" Width="310" Height="310" 
           PlacementTarget="{Binding ElementName=buttonDate}" 
           AllowsTransparency="True" Margin="8,-36,-29,-13">
        <Canvas Background="Transparent">
            <Canvas Background="LightBlue" Width="300" Height="300">
                <Canvas.BitmapEffect>
                    <DropShadowBitmapEffect Softness=".3" 
                                            ShadowDepth=".5" 
                                            Color="Black"/>
                </Canvas.BitmapEffect>
                <WindowsFormsHost Height="200" HorizontalAlignment="Left" Margin="0,0,0,0"   Name="windowsFormsHost1" VerticalAlignment="Top" Width="200"/>
            </Canvas>
        </Canvas>
    </Popup>



public partial class SearchBaseDateAndDuration : UserControl
{
    Persian_Calender.Persian_Calender pc;
    public SearchBaseDateAndDuration()
    {
        InitializeComponent();
        pc = new Persian_Calender.Persian_Calender();

        windowsFormsHost1.Child = pc;
    }
}

感谢您的关注
祝你好运

1
你可以分享任何失败尝试的代码。 - KyleMit
这段代码没有任何错误,但是我的用户控件没有显示出来,我使用弹出窗口很容易。 - Mousa Jafari
我不明白你在做什么,那应该如何工作。WindowsFormsHost XAML标记内部必须有某种WinForms控件。在这里可以看到一个DataGridView http://mindstick.com/Articles/e87470a2-1aac-4d2a-a645-f3d9e90ba555/?WindowsFormsHost%20control%20in%20WPF 或者这里的MaskedTextBox http://msdn.microsoft.com/en-us/library/system.windows.forms.integration.windowsformshost.aspx。在你的情况下,它会是一个特殊的日历控件吗?还是一个完整的UserControl对话框?`WindowsFormsHost`是空的。 - Csaba Toth
谢谢您的帮助,我在弹出窗口中测试了我的用户控件,但没有使用画布标记并且没有问题,现在我该如何在弹出窗口中显示我的控件和画布标记?我需要画布来实现弹出窗口的投影效果。 - Mousa Jafari
请问您能回答我吗? - Mousa Jafari
我在弹出窗口中使用canvas标签显示winForms控件时遇到了问题 - 除了canvas或其他面板外,只能在弹出窗口中放置一个控件。 - Mousa Jafari
1个回答

0

你可以使用一个网格,然后将WindowsFormsHost和Canvas都放在网格中(并使得WindowsFormsHost位于顶部)吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接