我有以下用户控件
public partial class LayoutWindow : UserControl
{
....
}
在此用户控件上,我有一个按钮可以打开另一个窗口调用PopUp
。
所以我试图更新 LayoutWindow
UserControl diagram.Bounds
属性(即 Canvas 大小),一旦按钮(OkButton_Click
)点击在 PopUp
窗口内
所以我尝试了以下事情
public partial class PopUp : Window
{
private void OkButton_Click(object sender, RoutedEventArgs e)
{
LayoutWindow lw= new LayoutWindow();
lw.InitializeComponent();
lw.diagram.Bounds = new Rect(0, 0, 400, 400);
Close();
}
}
但是这样它就不会更新到上面的属性,我怎样才能正确地做到这一点
最佳答案
您正在 PopUp
窗口中创建 LayoutWindow
的新实例。您需要访问已经存在的实例。最简单的方法可能是在创建 PopUp
窗口时注入(inject) LayoutWindow
实例:
public partial class PopUp : Window
{
private readonly LayoutWindow _lw;
public PopUp(LayoutWindow lw)
{
InitializeComponent();
_lw = lw;
}
private void OkButton_Click(object sender, RoutedEventArgs e)
{
_lw.diagram.Bounds = new Rect(0, 0, 400, 400);
Close();
}
}
LayoutWindow.xaml.cs:
var popup = new PopUp(this);
popup.Show();
关于c# - 从另一个窗口修改用户控件属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43522437/