Как поместить пользовательский элемент управления Windows Forms в приложение WPF?

Геокодер USC WebGIS свободен и предлагает несколько API, или можно загрузить базу данных для пакетной обработки онлайн.

5
задан Shizam 21 August 2009 в 05:02
поделиться

2 ответа

На самом деле вы не можете добавить его в качестве элемента управления на панель инструментов, как это можно было бы сделать для приложения Windows Forms. Вместо этого вам следует «разместить» пользовательский элемент управления внутри приложения WPF.

Посмотрите, как это сделать в MSDN .

Вот пример того, как использовать текстовое поле с маской (которое вы можете легко изменить, чтобы использовать пользовательский элемент управления):

<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"  
Title="HostingWfInWpf">
<Grid>
    <WindowsFormsHost>
       <wf:MaskedTextBox x:Name="mtbDate" Mask="00/00/0000"/>
    </WindowsFormsHost>
</Grid>
</Window>
7
ответ дан 13 December 2019 в 22:12
поделиться

Добавьте ссылку на System.Windows.Forms и WindowsFormsIntegration в свой проект

xmlns:WinForms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:WindowsFormsIntegration="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"

И разместите хост форм Windows в окне.

  <WindowsFormsHost Name="wfhDate"  
                    HorizontalAlignment="Center" 
                    VerticalAlignment="Stretch">
                <WinForms:FlowLayoutPanel/>
  </WindowsFormsHost>

Теперь в коде C #

using Forms = System.Windows.Forms;
.........................
Forms.FlowLayoutPanel flpPanel = this.wfhDate.Child as Forms.FlowLayoutPanel;
// Initialize your Forms contol here.
flpPanel.Controls.Add( yourControl );
3
ответ дан 13 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: