【问题标题】:How to add a Canvas event from another class? WPF C#如何从另一个类添加 Canvas 事件? WPF C#
【发布时间】:2014-01-13 01:09:42
【问题描述】:

我有一个 MainWindow 类,它是应用程序的主窗口。我在 MainWindow 类下面创建了另一个类,我需要向在 MainWindow 中创建的 Canvas 添加一个事件。我想添加为事件的方法也在 MainWindow 中。

public partial class MainWindow : Window
{
     public void Moving(object sender, MouseEventArgs e)
     { 
        bla bla;
     }

      public Canvas Getcanvas
      {
          get
          {
             return canvas;
          }
      }
}


public class Ka
{
      public Ka()
       {
            MainWindow.Getcanvas.MouseMove += new MouseEventHandler(//HERE!!! I DONT KNOW WHAT GOES HERE, here should probably be MainWindow.Moving but I get error "An object reference.."
       }

}

请帮帮我!

【问题讨论】:

  • MainWindow.Getcanvas 将导致错误,因为getcanvas 不是静态的。无论如何,写下你在正常场合会写的东西(基本上)。
  • 如果画布在 MainWindow 中,并且 MainWindow 方法应该处理来自画布的(鼠标)事件,为什么不将相应的代码放在 MainWindow 类中?拥有Ka的原因是什么?
  • public class Ka - 史诗。在尝试执行复杂的 WPF GUI 内容之前,请通过在控制台应用程序中执行 Hello, World! 类型的内容来正确学习 OOPC#。完成之后,请先学习 MVVM,然后再用 WPF 编写一行代码。
  • 你能告诉我如何获取 MainWindow 类的当前实例吗?

标签: c# wpf


【解决方案1】:
var mainWindowInstant = (MainWindow)App.Current.MainWindow;
mainWindowInstant.Getcanvas.MouseMove += new MouseEventHandler(...);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多