加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:36:38 所属栏目:百科 来源:网络整理
导读:我正在将WinForms项目的一部分迁移到 WPF中. 我想将现有的WinForms用户控件添加到WPF表单中. WinForm用户控件称为“TicketPrinter”,与WPF表单位于同一项目中. 在我的xaml中,我有这一行: xmlns:Printers="clr-namespace:Project.UserControls.Printers" 然
我正在将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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读