我一直在寻找答案的几天,却找不到答案。我有一个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));
}
据我所知它应该没问题,但它不是在编辑背景。很抱歉,如果这是一个小问题,我对编码很新,无法找到问题的答案。
提前致谢
答案 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是否已关闭或是否选择了实际颜色。