从 MainWindow.xaml.vb 设置用户控件的变量值
Set variable values of usercontrol from 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
好的,所以我有一个 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