gpt4 book ai didi

c# - 从另一个窗口修改用户控件属性的值

转载 作者:行者123 更新时间:2023-11-30 23:13:37 24 4
gpt4 key购买 nike

我有以下用户控制

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com