更改父表单

时间:2015-05-11 19:44:20

标签: c# wpf

我一直在寻找答案的几天,却找不到答案。我有一个C#WPF应用程序,我正在显示pc时间,当我点击应用程序本身它打开另一个WPF表单,我想编辑主表单背景的背景到目前为止我有这个:

    MainWindow mainwindow = new MainWindow();
    private void buttonSave_Click(object sender, RoutedEventArgs e)
    {
        mainwindow.Background = new SolidColorBrush(Color.FromRgb((byte)sliderRed.Value, (byte)sliderGreen.Value, (byte)sliderBlue.Value));
    }

据我所知它应该没问题,但它不是在编辑背景。很抱歉,如果这是一个小问题,我对编码很新,无法找到问题的答案。

提前致谢

1 个答案:

答案 0 :(得分:1)

2个选项; 1)如果想要从子表单中更改父表单属性,请通过构造函数传递引用。 2)对于看似“对话”实现的更常见,因此我将详细介绍的是在子表单中创建公共属性,然后在子表单关闭后从父表单中读取它。

public class MainForm()
{

    private void buttonSave_Click(object sender, RoutedEventArgs e)
    {
        ColorPicker ColorDialog = new ColorPicker();
        ColorDialog.ShowDialog(); // This will block until the child is closed as a true dialog normally does.
        this.Background = ColorDialog.ChosenColor;
    }
}

public class ColorPicker()
{
    public SolidColorBrush ChosenColor{get;private set;}

// Write the code for your color picker then store the value in ChosenColor.
}

这只是让您进入下一步的基础知识,完整的实现也会使用对话框结果属性来检查dalog是否已关闭或是否选择了实际颜色。