我有 MainWindow 以及一个打开 Window2 的按钮。
从 Window2 我使用Combobox设置 MainWindow 背景图片。
它完美无缺,但如果我尝试在XAML中初始化默认组合框项目或设置默认值,我会收到错误,因为它无法找到MainWindow。
异常:抛出:"对象引用未设置为对象的实例。"
主窗口
// Open Configure Window
window2 = new Window2();
window2.Owner = Window.GetWindow(this);
window2.Show();
窗口2
public Window2()
{
InitializeComponent();
// Set Default Combobox Default Item
if ((string)comboBox1.SelectedItem.SelectedItem == null)
{
comboBox1.SelectedItem = "Background 1";
}
}
// Combobox Selection Changed
private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Call MainWindow
MainWindow mainwindow = this.Owner as MainWindow;
// Combobox Item Selection
if ((string)comboBox1.SelectedItem == "Background 1")
{
// Background Image
ImageBrush changeBg = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "Resources/bg1.jpg")));
// Change MainWindow Background
mainwindow.Background = changeBg;
}
}
我也尝试了这个,但它引发了另一个错误。
MainWindow mainwindow = (MainWindow)Application.Current.MainWindow;
例外:抛出:"无法投射类型' MyProject.Window2'输入' MyProject.MainWindow'"