2016-08-16 2 views
0

Прошу прощения за мой английский.Элементы управления WPF внутри Winforms no refresh

У меня есть проект WINFORMS и внутри этого пользовательского элемента управления WPF.

WPF показал мне правильно, но когда я обновляю некоторые элементы управления в WPF, не обновляйте мне такой контроль. (Текстовое поле, метки, изображения и т. Д.)

Оставьте простой пример WPF в Winforms, который при нажатии кнопки должен показывать в текстовом поле «Hello World». Но я не работал.

Form1.cs

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace IntegracionWPF 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
    { 
     // Create the ElementHost control for hosting the 
     // WPF UserControl. 
     ElementHost host = new ElementHost(); 
     host.Dock = DockStyle.Fill; 

     // Create the WPF UserControl. 
     UserControl1 userControl1 = new UserControl1(); 
     userControl1.setText("Hola Mundo"); 

     // Assign the WPF UserControl to the ElementHost control's 
     // Child property. 
     host.Child = userControl1; 

     // Add the ElementHost control to the form's 
     // collection of child controls. 
     this.Controls.Add(host); 
    } 
    } 
} 

userControl1.xaml.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 

namespace IntegracionWPF 
{ 
    public partial class UserControl1 : UserControl 
    { 
     public UserControl1() 
     { 
      InitializeComponent(); 
     } 
     public void setText(string text) 
     { 
      textBox1.Text = text; 
     } 
    } 
} 
+1

вы не создадите новую UserContol1(), а не ссылки на тот, который вы тащили на форме? – sous2817

+1

в вашем примере 'userControl1', созданный в' button1_Click', вообще не отображается – ASh

+0

Я отредактировал мой вопрос в соответствии с рекомендациями Uthistran, но все еще не работает. –

ответ

0

Надеется, что вы ищете Elementhost. Это помогает вам в этом. Изменить нажатием на кнопку в Form1, как показано ниже

private void button1_Click(object sender, EventArgs e) 
    { 
     // Create the ElementHost control for hosting the 
     // WPF UserControl. 
     ElementHost host = new ElementHost(); 
     host.Dock = DockStyle.Fill; 

     // Create the WPF UserControl. 
     UserControl1 userControl1 = new UserControl1(); 
     userControl1.setText("Hola Mundo"); 

     // Assign the WPF UserControl to the ElementHost control's 
     // Child property. 
     host.Child = userControl1; 

     // Add the ElementHost control to the form's 
     // collection of child controls. 
     this.Controls.Add(host); 
    } 
+0

Я редактировал свой код, но он по-прежнему не работает. Я нажимаю кнопку, но не меняю текст. –

+0

любые сообщения об ошибках/ошибках. когда я пытался, он работал –

+0

У меня нет ошибки или исключения, у меня есть кнопка в форме и текстовом поле в WPF –

Смежные вопросы