如何从用户控件 - wpf调整主窗口中的网格大小

时间:2017-05-18 00:56:18

标签: c# wpf

我在用户控件中有一个关闭按钮。单击时我想在主窗口中隐藏网格 我想通过这个按钮控制

private void PWChangeClose_Click(object sender, RoutedEventArgs e)
    {
        DoubleAnimation dAnim = new DoubleAnimation();

        dAnim.From = 0;
        dAnim.To = 120;
        dAnim.Duration = TimeSpan.FromSeconds(0.4);
        dAnim.EasingFunction = new QuadraticEase();

        MainWindow Main = new MainWindow();
        Main.grdDockTop.BeginAnimation(HeightProperty, dAnim);
    }

但这不起作用 grdDockTop是Mainwindow中的网格。

2 个答案:

答案 0 :(得分:1)

您可以通过获取其实例

来访问主窗口属性和字段
private void PWChangeClose_Click(object sender, RoutedEventArgs e)
    {
        DoubleAnimation dAnim = new DoubleAnimation();

        dAnim.From = 0;
        dAnim.To = 120;
        dAnim.Duration = TimeSpan.FromSeconds(0.4);
        dAnim.EasingFunction = new QuadraticEase();

        //MainWindow Main = new MainWindow(); Change this to: 
        var Main = App.Current.MainWindow as MainWindow;

        Main.grdDockTop.BeginAnimation(HeightProperty, dAnim);
    }

答案 1 :(得分:0)

如果你想在没有MVVM模式的代码中执行此操作,则需要访问MainWindow的确切实例。

public class MainWindow
{
    public static MainWindow mainWindowInstace;
    MainWindow()
    {
        mainWindowInstace=this;
    }
}

并像

一样访问网格
MainWindow.mainWindowInstace.grdDockTop