<small id='inXrN'></small><noframes id='inXrN'>

<legend id='inXrN'><style id='inXrN'><dir id='inXrN'><q id='inXrN'></q></dir></style></legend>
    • <bdo id='inXrN'></bdo><ul id='inXrN'></ul>

    <tfoot id='inXrN'></tfoot>

      1. <i id='inXrN'><tr id='inXrN'><dt id='inXrN'><q id='inXrN'><span id='inXrN'><b id='inXrN'><form id='inXrN'><ins id='inXrN'></ins><ul id='inXrN'></ul><sub id='inXrN'></sub></form><legend id='inXrN'></legend><bdo id='inXrN'><pre id='inXrN'><center id='inXrN'></center></pre></bdo></b><th id='inXrN'></th></span></q></dt></tr></i><div id='inXrN'><tfoot id='inXrN'></tfoot><dl id='inXrN'><fieldset id='inXrN'></fieldset></dl></div>

        更改 MainWindow 背景颜色 WPF

        Changing MainWindow background color WPF(更改 MainWindow 背景颜色 WPF)

          <bdo id='l6C4K'></bdo><ul id='l6C4K'></ul>

              • <small id='l6C4K'></small><noframes id='l6C4K'>

                  <tfoot id='l6C4K'></tfoot>
                  <legend id='l6C4K'><style id='l6C4K'><dir id='l6C4K'><q id='l6C4K'></q></dir></style></legend>

                  <i id='l6C4K'><tr id='l6C4K'><dt id='l6C4K'><q id='l6C4K'><span id='l6C4K'><b id='l6C4K'><form id='l6C4K'><ins id='l6C4K'></ins><ul id='l6C4K'></ul><sub id='l6C4K'></sub></form><legend id='l6C4K'></legend><bdo id='l6C4K'><pre id='l6C4K'><center id='l6C4K'></center></pre></bdo></b><th id='l6C4K'></th></span></q></dt></tr></i><div id='l6C4K'><tfoot id='l6C4K'></tfoot><dl id='l6C4K'><fieldset id='l6C4K'></fieldset></dl></div>
                    <tbody id='l6C4K'></tbody>
                  本文介绍了更改 MainWindow 背景颜色 WPF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试使用名为 EditColorDialog 的对话框更改 MainWindow 的背景颜色.该对话框可以很好地读取主窗口的当前背景颜色,但我似乎无法让它更改该颜色.

                  I am trying to change the background color of the MainWindow using a dialogbox called EditColorDialog. The dialogbox can read the current background color of the main window just fine but I can't seem to get it to change that color.

                  public partial class EditColorDialog : Window
                  {
                      ColorDialog colorPicker = new ColorDialog();  //this is a colorpicker
                      MainWindow mw = new MainWindow();
                  
                      public ColorDialog()
                      {
                          InitializeComponent();
                          rect.Fill = mw.background;  //reads the color off the main window
                      }
                  
                      private void rect_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
                      {
                          colorPicker.Owner = this;
                          if ((bool)colorPicker.ShowDialog())
                          {
                              //selects new color from colorpicker
                              rect.Fill = new SolidColorBrush(colorPicker.SelectedColor);
                          }
                      }
                  
                      private void OkButton_Click(object sender, RoutedEventArgs e)
                      {
                          mw.background = rect.Fill;
                          this.Close(); 
                      }
                  }
                  

                  我在主窗口代码中使用这个属性

                  I am using this property in the main window code

                  public Brush background
                  {
                      get { return main_window.Background; }
                      set { main_window.Background = value; }   
                  }
                  

                  推荐答案

                  每次创建这样的对话框时都会创建一个新的 MainWindow.不是个好主意.

                  You create a new MainWindow every time you create such a dialog. Not a good idea.

                  如果有什么你应该设置 Application.MainWindow 在应用程序启动时.然后像这样设置引用:

                  If anything you should set the Application.MainWindow on application startup. Then set the reference like this:

                  MainWindow mw = (MainWindow)Application.Current.MainWindow;
                  

                  只需使用 nw.Background,您的该属性似乎是静态调用的非静态包装器.这样做你已经有了主窗口.

                  and just use nw.Background, that property of yours seems like a non-static wrapper for a static call. Doing it this way you already have the main window.

                  这篇关于更改 MainWindow 背景颜色 WPF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  C# namespace alias - what#39;s the point?(C# 命名空间别名 - 有什么意义?)
                  Using Xpath With Default Namespace in C#(在 C# 中使用具有默认命名空间的 Xpath)
                  Generating an EDMX from a DB2 Database(从 DB2 数据库生成 EDMX)
                  IBM .NET Data Provider Connection String issue with Library List(库列表的 IBM .NET 数据提供程序连接字符串问题)
                  .NET DB2 OLEDB pre-requisites(.NET DB2 OLEDB 先决条件)
                  Referring to Code in IBM.Data.DB2 makes that Assembly Unavailable to the rest of my Solution(引用 IBM.Data.DB2 中的代码使该程序集对我的解决方案的其余部分不可用)

                  <small id='NXzFq'></small><noframes id='NXzFq'>

                  <tfoot id='NXzFq'></tfoot>

                    <bdo id='NXzFq'></bdo><ul id='NXzFq'></ul>
                        • <i id='NXzFq'><tr id='NXzFq'><dt id='NXzFq'><q id='NXzFq'><span id='NXzFq'><b id='NXzFq'><form id='NXzFq'><ins id='NXzFq'></ins><ul id='NXzFq'></ul><sub id='NXzFq'></sub></form><legend id='NXzFq'></legend><bdo id='NXzFq'><pre id='NXzFq'><center id='NXzFq'></center></pre></bdo></b><th id='NXzFq'></th></span></q></dt></tr></i><div id='NXzFq'><tfoot id='NXzFq'></tfoot><dl id='NXzFq'><fieldset id='NXzFq'></fieldset></dl></div>
                            <tbody id='NXzFq'></tbody>
                        • <legend id='NXzFq'><style id='NXzFq'><dir id='NXzFq'><q id='NXzFq'></q></dir></style></legend>