#wpf #animation #pane #raddocking
#wpf #Анимация #панель #раддокинг
Вопрос:
У меня есть следующий код, и я хочу иметь анимацию для включения и отключения любого «radpane «в соответствующей «radpanegroup».
Например, когда я помещаю «radpane» в режим pin-кода, его ширина увеличивается на 3 секунды, или другим примером является изменение цвета границы. Мое решение состоит в том, чтобы использовать:
lt;telerik:RadDockinggt; ... ... ... lt;telerik:RadDocking.FlyoutBehaviorgt; lt;local:AnimatedFlyoutBehavior/gt; lt;/telerik:RadDocking.FlyoutBehaviorgt;lt;/telerik:RadDockinggt;
Я использовал интерфейс «IFlyoutBehavior», и в результате были реализованы следующие функции:
void IFlyoutBehavior.OnMouseEnter (IFlyoutHost host, RadPane targetPane) { } void IFlyoutBehavior.OnPaneActivated (IFlyoutHost host, RadPane targetPane) { } void IFlyoutBehavior.OnMouseLeave (IFlyoutHost host) { } void IFlyoutBehavior.OnOpeningTimerTimeout (IFlyoutHost host) { } void IFlyoutBehavior.OnClosingTimerTimeout (IFlyoutHost host) { } void IFlyoutBehavior.OnPaneDeactivated (IFlyoutHost host, RadPane targetPane) { var selectedPane = host.SelectedPane; if (selectedPane! = null amp;amp;! selectedPane.IsActive amp;amp; host.CurrentState == FlyoutState.Opened) { host.StartCloseAnimation (); } } void IFlyoutBehavior.OnPaneMouseLeftButtonDown (IFlyoutHost host, RadPane targetPane) { if (host.CurrentState! = FlyoutState.Opened) { host.StartOpenAnimation (); } else { host.StartCloseAnimation (); } }}
Я не мог использовать достаточно этого интерфейса. Есть ли лучший способ настроить анимацию в «radpane» или разработать ее таким образом?