• 演练:在 Windows 窗体中承载 Windows Presentation Foundation 复合控件 【转载】


    http://msdn.microsoft.com/zh-cn/library/ms745781.aspx

    更新:2007 年 11 月

    本演练演示如何创建 WPF 复合控件,并通过使用 ElementHost 控件在 Windows 窗体控件和窗体中承载它。

    在本演练中,将实现一个包含两个子控件的 WPFUserControlUserControl 显示一个三维 (3-D) 圆锥。使用 WPF 呈现三维对象比使用 Windows 窗体更简单。因此,对于在 Windows 窗体中创建三维图形,承载 WPFUserControl 类非常有意义。

    本演练涉及以下任务:

    有关本演练中所阐释任务的完整代码清单,请参见在 Windows 窗体中承载 Windows Presentation Foundation 复合控件的示例

    注意 显示的对话框和菜单命令可能与“帮助”中所述的有所不同,具体取决于当前的设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

    先决条件

    您需要以下组件来完成本演练:

    • Visual Studio 2008.

    创建 UserControl

    创建 UserControl
    1. 创建一个名为 HostingWpfUserControlInWf 的 WPF 用户控件库项目。

    2. 在 WPF 设计器中打开 UserControl1.xaml。

    3. 用下面的代码替换生成的代码。

      该代码定义一个包含两个子控件的 System.Windows.Controls.UserControl。第一个子控件是 System.Windows.Controls.Label 控件;第二个控件是显示三维圆锥的 Viewport3D 控件。

    创建 Windows 窗体宿主项目

    创建宿主项目
    1. 将名为 WpfUserControlHost 的 Windows 应用程序项目添加到解决方案中。有关更多信息,请参见“添加新项目”对话框

    2. 在解决方案资源管理器中,添加一个对名为 WindowsFormsIntegration.dll 的 WindowsFormsIntegration 程序集的引用。

    3. 添加对以下 WPF 程序集的引用:

      • PresentationCore

      • PresentationFramework

      • WindowsBase

    4. 添加对 HostingWpfUserControlInWf 项目的引用。

    5. 在解决方案资源管理器中,将 WpfUserControlHost 项目设置为启动项目。

    承载 Windows Presentation Foundation UserControl

    承载 UserControl
    1. 在 Windows 窗体设计器中打开 Form1。

    2. 在“属性”窗口中,单击“事件”,然后双击 Load 事件以创建事件处理程序。

      代码编辑器打开并定位到新生成的 Form1_Load 事件处理程序。

    3. 将 Form1.cs 中的代码替换为以下代码。

      Form1_Load 事件处理程序将创建一个 UserControl1 实例,并将其添加到ElementHost 控件的子控件集合中。ElementHost 控件将被添加到窗体的子控件集合中。

      Visual Basic

      Imports System
      Imports System.Collections.Generic
      Imports System.ComponentModel
      Imports System.Data
      Imports System.Drawing
      Imports System.Text
      Imports System.Windows.Forms
      
      Imports System.Windows.Forms.Integration
      
      Public Class Form1
          Inherits Form
      
          Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
              ' Create the ElementHost control for hosting the
              ' WPF UserControl.
             

      Dim host As New ElementHost()

              host.Dock = DockStyle.Fill
      
              ' Create the WPF UserControl.
              Dim uc As New HostingWpfUserControlInWf.UserControl1()
      
              ' Assign the WPF UserControl to the ElementHost control's
              ' Child property.
              host.Child = uc
      
              ' Add the ElementHost control to the form's
              ' collection of child controls.
              Me.Controls.Add(host)
          End Sub
      
      End Class
      
      
    4. 按 F5 生成并运行该应用程序。

  • 相关阅读:
    [PHP] 适配器模式的日常使用
    [MySQL] timestamp和datetime的区别和大坑
    [PHP] foreach循环的引用赋值可能导致的问题
    [PHP] 邮件发送mail()函数失败问题 sendmail命令与postfix
    [日常] 腾讯云发送邮件失败问题
    [日常] 正则表达式 小括号() 中括号[] 大括号{}
    [Linux] awk与posix字符集
    [PHP] 工厂模式的日常使用
    [PHP] 抽象类abstract的回顾
    [日常]灵活的频率限制实现
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1451281.html
Copyright © 2020-2023  润新知