如何从我的UserControl到达我的主窗体控件

时间:2015-10-30 15:15:17

标签: wpf user-controls

当我的应用程序最小化时,我会在托盘中打开气球user control。 所以我在这个气球上创建了简单的Button

public partial class ApplicationBalloon : UserControl
{ 
    private void btnStart_Click(object sender, RoutedEventArgs e)
    {

    }
}

当这个事件被触发时,我想点击我主表单中的特定按钮,这样我就能从这个UserControl到达我的主窗体控件?

修改

在我的主要形式之后:

    applicationBalloon = new ApplicationBalloon();
    applicationBalloon.BalloonClicked += applicationBalloon_BalloonClicked;

在我的User Control

public partial class ApplicationBalloon : UserControl
{
    public event EventHandler<RoutedEventArgs> BalloonClicked;
    public ApplicationBalloon()
    {
        InitializeComponent();
    }

    private void btnStart_Click(object sender, RoutedEventArgs e)
    {
        if (BalloonClicked != null)
            BalloonClicked(sender, e);
    }
}

btnStart_Click是我的应用程序运行后,BalloonClicked仍为null

2 个答案:

答案 0 :(得分:0)

向气球类添加一个事件,处理气球类中的点击并将参数传递给任何附加到您事件的人。

在你的气球课上:

public partial class ApplicationBalloon : UserControl
{ 
    public event EventHandler<RoutedEventArgs> BalloonClicked;

    private void OnButtonClicked(object sender, RoutedEventArgs e)
    {
        if (BalloonClicked != null)
            BalloonClicked(sender, e);
    }
}

现在,您可以向附加到BalloonClicked的主表单添加处理程序。

答案 1 :(得分:0)

只需访问:

Application.Current.MainWindow

并将其投射到您的主窗口类型。