c# – 如何将WinForm用户控件添加到WPF中,以便我可以在xaml.cs文件中引用它

前端之家收集整理的这篇文章主要介绍了c# – 如何将WinForm用户控件添加到WPF中,以便我可以在xaml.cs文件中引用它前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在将WinForms项目的一部分迁移到 WPF中.

我想将现有的WinForms用户控件添加到WPF表单中. WinForm用户控件称为“TicketPrinter”,与WPF表单位于同一项目中.

在我的xaml中,我有这一行:

xmlns:Printers="clr-namespace:Project.UserControls.Printers"

然后我在我的xaml中使用它:

<WindowsFormsHost Height="430" HorizontalAlignment="Left" Margin="468,12,0" Name="windowsFormsHost1" VerticalAlignment="Top" Width="324">
            <Printers:TicketPrinter Printers:Name="ZapTicketPrinter">
            </Printers:TicketPrinter>
        </WindowsFormsHost> 
    </Grid>
</Window>

当我运行项目时,用户控件将按预期显示在窗体上.

但是当我进入xaml.cs文件后面的代码并尝试访问“ZapTicketPrinter”时,它不能作为参考.

我尝试使用ZapTicketPrinter并且无法识别.

我也尝试过以下方法

TicketPrinter ticketPrinter = this.FindName("ZapTicketPrinter") as TicketPrinter;

但得到一个空

我错过了什么?
如何在代码中引用该名称

解决方法

提供x:名称而不是printer:name
<WindowsFormsHost>
    <Printers:TicketPrinter x:Name="ZapTicketPrinter"/>
</WindowsFormsHost>

MSDN示例

使用背后的代码
http://msdn.microsoft.com/en-us/library/ms751761.aspx
Walkthrough: Hosting a Windows Forms Control in WPF

使用xaml
http://msdn.microsoft.com/en-us/library/ms742875.aspx
Walkthrough: Hosting a Windows Forms Control in WPF by Using XAML

猜你在找的C#相关文章