如何从子winform更改父wpf表单内的控件的布局?

时间:2013-05-03 10:00:05

标签: wpf winforms parent-child

我在解决方案中有两个独立的项目,一个是wpf,另一个是windows窗体,我已经将winform引用到wpf项目。在wpf窗口内部是一个图像控件,当点击时,一个带有一个窗体按钮会出现。

如果点击winform中的按钮,我怎么能够在wpf表单内更改图像控件的图像源...

我见过similar question to this ,但我无法理解答案......

1 个答案:

答案 0 :(得分:1)

您可以将委托/ Action传递给Winform以执行操作

这是一个非常快速的例子

<强> WPF

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
       // pass in the method you want to call when the winform button is clicked
       var winform = new Form1(() => ChangeImage()).ShowDialog();
    }

    private void ChangeImage()
    {
        // your change image logic
    }
}

<强>的Winforms

public partial class Form1 : Form
{
    private Action _action;

    public Form1()
    {
        InitializeComponent();
    }

    public Form1(Action action)
    {
        _action = action;
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (_action != null)
        {
            // call the method in the WPF form
            _action.Invoke();
        }
    }
}