مشاركة عبر


الإرشادات التفصيلية: استضافة عنصر تحكم نماذج Windows في WPF

يوفر WPF العديد من عناصر التحكم مع مجموعة ميزات غنية. ومع ذلك، قد تريد أحياناً تحتاج استخدام عناصر تحكم Windows Forms على الصفحات WPF الخاصة بك. على سبيل المثال، قد يكون لديك استثمار حقيقي في عناصر تحكم Windows Forms الموجودة أو قد يكون لديك عنصر تحكم Windows Forms يوفر وظائف فريدة.

تُظهر هذه الإرشادات التفصيلية كيفية استضافة عنصر تحكم نماذج Windows Windows Forms على صفحة System.Windows.Forms.MaskedTextBox باستخدام WPF.

للحصول على قائمة كاملة للتعليمات البرمجية للمهام الموضحة في هذه الإرشادات التفصيلية راجع استضافة عنصر تحكم النماذج Windows في WPF بواسطة استخدام نموذج XAML .

لاحظ . قد تختلف مربعات الحوار وأوامر القائمة التي تشاهدها عن تلك الموصوفة في التعليمات اعتماداً على الإعدادات النشطة أو الإصدار الخاص بك. لتغيير الإعدادات الخاصة بك, اختر إعدادات الاستيراد و التصدير ضمن القائمة أدوات . لمزيد من المعلومات، راجع العمل مع إعدادات.

المتطلبات الأساسية

تحتاج إلى المكونات التالية لاستكمال هذه الإرشادات التفصيلية:

  • Visual Studio 2008.

استضافة عنصر تحكم نماذج Windows

لتستضيف عنصر تحكم MaskedTextBox

  1. قم بإنشاء مشروع تطبيق WPF باسم HostingWfInWpf.

  2. في "مستكشف الحلول" قم بإضافة مرجع إلى تجميع WindowsFormsIntegration يسمى WindowsFormsIntegration.dll.

  3. في "مستكشف الحلول" قم بإضافة مرجع إلى تجميع Windows Forms الذي يسمى System.Windows.Forms.dll.

  4. قم بفتح Window1.xaml في ال مصمم WPF.

  5. في عرضWindows1.xaml ,قم باستبدال XAML المنشأة تلقائياً مع XAML التالية.

    <Window x:Class="HostingWfInWpf.Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="HostingWfInWpf"
        Loaded="WindowLoaded"
        >
        <Grid Name="grid1">
    
        </Grid>
    </Window>
    
  6. افتح Window1.xaml.cs في محرر تعليمات برمجية.

  7. قم باستبدال التعليمات البرمجية في Window1.xaml عنصر بالتعليمات البرمجية في المثال التالي.

    Imports System
    Imports System.Windows
    Imports System.Windows.Controls
    Imports System.Windows.Data
    Imports System.Windows.Documents
    Imports System.Windows.Media
    Imports System.Windows.Media.Imaging
    Imports System.Windows.Shapes
    
    Imports System.Windows.Forms
    
    ' Interaction logic for Window1.xaml
    Partial Public Class Window1
        Inherits Window
    
        Public Sub New()
            InitializeComponent()
        End Sub
    
        Private Sub WindowLoaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
            ' Create the interop host control.
            Dim host As New System.Windows.Forms.Integration.WindowsFormsHost()
    
            ' Create the MaskedTextBox control.
            Dim mtbDate As New MaskedTextBox("00/00/0000")
    
            ' Assign the MaskedTextBox control as the host control's child.
            host.Child = mtbDate
    
            ' Add the interop host control to the Grid
            ' control's collection of child controls.
            Me.grid1.Children.Add(host)
    
        End Sub 'WindowLoaded
    
    End Class
    
    using System;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Media;
    using System.Windows.Shapes;
    
    using System.Windows.Forms;
    
    namespace HostingWfInWpf
    {   
        public partial class Window1 : Window
        {
            public Window1()
            {
                InitializeComponent();
            }
    
            private void WindowLoaded(object sender, RoutedEventArgs e) 
            {
                // Create the interop host control.
                System.Windows.Forms.Integration.WindowsFormsHost host =
                    new System.Windows.Forms.Integration.WindowsFormsHost();
    
                // Create the MaskedTextBox control.
                MaskedTextBox mtbDate = new MaskedTextBox("00/00/0000");
    
                // Assign the MaskedTextBox control as the host control's child.
                host.Child = mtbDate;
    
                // Add the interop host control to the Grid
                // control's collection of child controls.
                this.grid1.Children.Add(host);
            }
        }
    }
    

راجع أيضًا:

المهام

الإرشادات التفصيلية: استضافة عنصر تحكم نماذج Windows في WPF باستخدام XAML

المرجع

ElementHost

WindowsFormsHost

المبادئ

الإرشادات التفصيلية: استضافة عنصر تحكم Windows Forms في WPF

الإرشادات التفصيلية: استضافة عنصر تحكم WPF في نماذج النوافذ

عناصر تحكم Windows Forms وعناصر تحكم WPF المكافئة

موارد أخرى

مصمم WPF

استضافة التحكم نماذج ويندوز في نموذج WPF عينة

الترحيل و إمكانية التشغيل المتداخل لمواضيع How-to