从MainWindow.xaml.vb设置用户控件的变量值



好的,所以我有一个MainWindow和一个用户控件,当加载MainWindow时,它在运行时包含在MainWindow中。现在我想从主窗口更改用户控件的网格背景。

我试过:

Sub button_click(...) Handles button.click
UserControl1.grid1.Background = CType(FindResource(AdonisUI.Brushes.Layout4BackgroundBrush), Brush)
End Sub

但这在代码建议框中给了我一个错误,如下所示:

Reference to a non-shared member requires an object reference.

我也试过:

Sub button_click(...) Handles button.click
Dim u = Application.Current.Windows.OfType(Of BuildUIContainer).FirstOrDefault
u.grid1.Background = CType(FindResource(AdonisUI.Brushes.Layout4BackgroundBrush), Brush)
End Sub

代码会编译,但单击按钮时网格的背景颜色不会改变。

由于您在Loaded事件期间创建UserControl,因此您可以将对它的引用存储在变量中,并在稍后阶段使用此引用直接访问它,例如:

Private theUserControl As UserControl1
Sub OnLoaded(...) Handles Loaded
theUserControl = New UserControl1()
...
End Sub
Sub button_click(...) Handles button.click
theUserControl.Background = ...
End Sub

最新更新