После анимации в WPF C# некорректно работает GridSplitter

487
07 февраля 2017, 18:41

В программе при нажатии соответствующей кнопки происходит скрытие столбца, при повторном нажатии - раскрывается. До скрытия/раскрытия с помощью GridSplitter можно спокойно менять ширину столбца, содержимое (Border, в нем вложенный грид и т.д.) также растягивается или сжимается. Однако после выполнения анимации GridSplitter растягивает и сжимает столбец, но содержимое размер не меняет размера, Подскажите, как можно это исправить?

Код функции раскрытия столбца:

DoubleAnimation animation = new DoubleAnimation();
animation.From = 0;
MainPanel.MinWidth = 250;
animation.To = MainPanel.MinWidth;
animation.Duration = TimeSpan.FromSeconds(0.2);
animation.Completed += Animation_Completed;
RootMenu.BeginAnimation(Border.WidthProperty, animation);

Код скрытия столбца:

DoubleAnimation animation = new DoubleAnimation();
animation.From = MainPanel.ActualWidth;
animation.To = 0;
animation.Duration = TimeSpan.FromSeconds(0.2);
MainPanel.MinWidth = 0;
MainPanel.Width = GridLength.Auto;
RootMenu.BeginAnimation(Border.WidthProperty, animation);

MainPanel - имя столбца RootMenu - имя Border.

Что и где необходимо подправить, чтобы после действия анимации GridSplitter работал корректно?

Есть предположение, что после анимации у Border выставляется фиксированная ширина и по этому он не расширяется. Как это исправить, понять не могу

Answer 1

Решение проблемы

Проблема решена путем удаления объекта анимации по ее завершении, обработав событие Completed объекта анимации.

READ ALSO
Упростить код изменения видимости

Упростить код изменения видимости

Есть форма с текстбоксами nomer1, nomer2 и тд

399
DataGrid (C#) Дублирование столбцов, update

DataGrid (C#) Дублирование столбцов, update

Здравствуйте, пишу приложение на WPFПытаюсь добавлять в DataGrid записи, но они дублируют столбцы и сама таблица после их добавления не обновляется,...

391
Изменение значения ProgressBar на C# WPF

Изменение значения ProgressBar на C# WPF

У меня есть приложение на wpf, которое достаточно долго пингует ряд ip-шниковЗахотелось установить ProgressBar

498
Наследование generic-класса от интерфейса

Наследование generic-класса от интерфейса

У меня есть классы и интерфейсы:

489