Анимированная сетка Margin на MainForm от Usercontrol - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть пользовательский элемент управления (Menu.xaml) в родительском окне (Dashboard) с сеткой name = "page". У меня также есть кнопка (ButtonOpenMenu) в пользовательском элементе управления, и я хочу изменить свойство Margin сетки (страницы) в главной форме.

так в основном

В коде UserControl позади

   public void ButtonOpenMenu_Click(object sender, RoutedEventArgs e)
        {
         //  change margin of grid on Parent Wndow(Dashboard)

ThicknessAnimation grdanimation =  new ThicknessAnimation(new thickness(0), new Thickness(200, 0, 0, 0),
       new Duration(new TimeSpan(0, 0, 1)), FillBehavior.HoldEnd);
Dashboard db = new Dashbaord();

        db.page.BeginAnimation(Border.MarginProperty, anima);


        } 

Любая помощь?

1 Ответ

0 голосов
/ 09 сентября 2018

Нашел решение моего вопроса.

поэтому в моем Menu.xaml (Usercontrol) я создал статическое событие

// static
public static event EventHandler AnimateButtonClicked;

  // button click event
public void Animatebutton_Click(object sender, RoutedEventArgs e)
    {
        AnimateButtonClicked(this, e);
    }

затем в главном окне (приборной панели). Я создал метод (DoAnimate), который запускается при нажатии кнопки (Animatebutton) в моем пользовательском элементе управления.

    Dashboard.xaml

    private void DoAnimate(Object sender, EventArgs e)
    { 
        ThicknessAnimation anima =
        new ThicknessAnimation(new Thickness(0), new Thickness(150, 0, 0, 0),
        new Duration(new TimeSpan(0, 0, 1)), FillBehavior.HoldEnd);
        anima.From = new Thickness(150, 0, 0, 0);
        anima.To = new Thickness(100, 0, 0, 0);
        anima.AutoReverse = false;

        // page is the name of the grid that gets animated.
        page.BeginAnimation(Border.MarginProperty, anima);
    }

 private void Window_Loaded(object sender, RoutedEventArgs e)
    {
       Menu.AnimateButtonClicked += new EventHandler(DoAnimate);

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...