|
316 | 316 | </Border> |
317 | 317 |
|
318 | 318 | <Grid x:Name="ContentPresenterGrid" DockPanel.Dock="Bottom" ClipToBounds="True"> |
| 319 | + <!-- Dummy border to store Animation factor for expander --> |
| 320 | + <Border x:Name="AnimationFactorBorder" Width="0" Visibility="Collapsed" /> |
319 | 321 | <Border x:Name="ContentPresenterBorder" |
320 | 322 | Background="{DynamicResource ExpanderContentBackground}" |
321 | 323 | BorderBrush="{TemplateBinding BorderBrush}" |
|
327 | 329 | HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" |
328 | 330 | VerticalAlignment="{TemplateBinding VerticalContentAlignment}" |
329 | 331 | Content="{TemplateBinding Content}" /> |
330 | | - <Border.Tag> |
331 | | - <system:Double>0.0</system:Double> |
332 | | - </Border.Tag> |
333 | 332 | <Border.Resources> |
334 | | - <TranslateTransform x:Key="HeightAnimation"> |
| 333 | + <TranslateTransform x:Key="HeightAnimationNegative"> |
335 | 334 | <TranslateTransform.Y> |
336 | 335 | <MultiBinding Converter="{StaticResource AnimationFactorToValueConverter}" ConverterParameter="negative"> |
337 | 336 | <Binding ElementName="ContentPresenterBorder" Path="ActualHeight" /> |
338 | | - <Binding ElementName="ContentPresenterBorder" Path="Tag" /> |
| 337 | + <Binding ElementName="AnimationFactorBorder" Path="Width" /> |
339 | 338 | </MultiBinding> |
340 | 339 | </TranslateTransform.Y> |
341 | 340 | </TranslateTransform> |
342 | | - <TranslateTransform x:Key="WidthAnimation"> |
| 341 | + <TranslateTransform x:Key="WidthAnimationNegative"> |
343 | 342 | <TranslateTransform.X> |
344 | 343 | <MultiBinding Converter="{StaticResource AnimationFactorToValueConverter}" ConverterParameter="negative"> |
345 | 344 | <Binding ElementName="ContentPresenterBorder" Path="ActualWidth" /> |
346 | | - <Binding ElementName="ContentPresenterBorder" Path="Tag" /> |
| 345 | + <Binding ElementName="AnimationFactorBorder" Path="Width" /> |
| 346 | + </MultiBinding> |
| 347 | + </TranslateTransform.X> |
| 348 | + </TranslateTransform> |
| 349 | + <TranslateTransform x:Key="HeightAnimationPositive"> |
| 350 | + <TranslateTransform.Y> |
| 351 | + <MultiBinding Converter="{StaticResource AnimationFactorToValueConverter}" ConverterParameter="positive"> |
| 352 | + <Binding ElementName="ContentPresenterBorder" Path="ActualHeight" /> |
| 353 | + <Binding ElementName="AnimationFactorBorder" Path="Width" /> |
| 354 | + </MultiBinding> |
| 355 | + </TranslateTransform.Y> |
| 356 | + </TranslateTransform> |
| 357 | + <TranslateTransform x:Key="WidthAnimationPositive"> |
| 358 | + <TranslateTransform.X> |
| 359 | + <MultiBinding Converter="{StaticResource AnimationFactorToValueConverter}" ConverterParameter="positive"> |
| 360 | + <Binding ElementName="ContentPresenterBorder" Path="ActualWidth" /> |
| 361 | + <Binding ElementName="AnimationFactorBorder" Path="Width" /> |
347 | 362 | </MultiBinding> |
348 | 363 | </TranslateTransform.X> |
349 | 364 | </TranslateTransform> |
|
366 | 381 | <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="(Border.Visibility)"> |
367 | 382 | <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" /> |
368 | 383 | </ObjectAnimationUsingKeyFrames> |
369 | | - <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="Tag"> |
| 384 | + <DoubleAnimationUsingKeyFrames Storyboard.TargetName="AnimationFactorBorder" Storyboard.TargetProperty="Width"> |
370 | 385 | <DiscreteDoubleKeyFrame KeyTime="0" Value="1.0" /> |
371 | 386 | <SplineDoubleKeyFrame |
372 | 387 | KeySpline="0.0, 0.0, 0.0, 1.0" |
|
381 | 396 | <Storyboard> |
382 | 397 | <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="(Border.Visibility)"> |
383 | 398 | <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" /> |
384 | | - <DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="{x:Static Visibility.Collapsed}" /> |
| 399 | + <DiscreteObjectKeyFrame KeyTime="0:0:5" Value="{x:Static Visibility.Collapsed}" /> |
385 | 400 | </ObjectAnimationUsingKeyFrames> |
386 | | - <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="Tag"> |
| 401 | + <DoubleAnimationUsingKeyFrames Storyboard.TargetName="AnimationFactorBorder" Storyboard.TargetProperty="Width"> |
387 | 402 | <DiscreteDoubleKeyFrame KeyTime="0" Value="0.0" /> |
388 | 403 | <SplineDoubleKeyFrame |
389 | 404 | KeySpline="1.0, 1.0, 0.0, 1.0" |
|
411 | 426 | <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="(Border.Visibility)"> |
412 | 427 | <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" /> |
413 | 428 | </ObjectAnimationUsingKeyFrames> |
414 | | - <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="Tag"> |
415 | | - <DiscreteDoubleKeyFrame KeyTime="0" Value="-1.0" /> |
| 429 | + <DoubleAnimationUsingKeyFrames Storyboard.TargetName="AnimationFactorBorder" Storyboard.TargetProperty="Width"> |
| 430 | + <DiscreteDoubleKeyFrame KeyTime="0" Value="1.0" /> |
416 | 431 | <SplineDoubleKeyFrame |
417 | 432 | KeySpline="0.0, 0.0, 0.0, 1.0" |
418 | 433 | KeyTime="0:0:0.333" |
|
428 | 443 | <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" /> |
429 | 444 | <DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="{x:Static Visibility.Collapsed}" /> |
430 | 445 | </ObjectAnimationUsingKeyFrames> |
431 | | - <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="Tag"> |
| 446 | + <DoubleAnimationUsingKeyFrames Storyboard.TargetName="AnimationFactorBorder" Storyboard.TargetProperty="Width"> |
432 | 447 | <DiscreteDoubleKeyFrame KeyTime="0" Value="0.0" /> |
433 | 448 | <SplineDoubleKeyFrame |
434 | 449 | KeySpline="1.0, 1.0, 0.0, 1.0" |
435 | 450 | KeyTime="0:0:0.333" |
436 | | - Value="-1.0" /> |
| 451 | + Value="1.0" /> |
437 | 452 | </DoubleAnimationUsingKeyFrames> |
438 | 453 | </Storyboard> |
439 | 454 | </BeginStoryboard> |
|
456 | 471 | <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="(Border.Visibility)"> |
457 | 472 | <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" /> |
458 | 473 | </ObjectAnimationUsingKeyFrames> |
459 | | - <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="Tag"> |
460 | | - <DiscreteDoubleKeyFrame KeyTime="0" Value="-1.0" /> |
| 474 | + <DoubleAnimationUsingKeyFrames Storyboard.TargetName="AnimationFactorBorder" Storyboard.TargetProperty="Width"> |
| 475 | + <DiscreteDoubleKeyFrame KeyTime="0" Value="1.0" /> |
461 | 476 | <SplineDoubleKeyFrame |
462 | 477 | KeySpline="0.0, 0.0, 0.0, 1.0" |
463 | 478 | KeyTime="0:0:0.333" |
|
473 | 488 | <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" /> |
474 | 489 | <DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="{x:Static Visibility.Collapsed}" /> |
475 | 490 | </ObjectAnimationUsingKeyFrames> |
476 | | - <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="Tag"> |
| 491 | + <DoubleAnimationUsingKeyFrames Storyboard.TargetName="AnimationFactorBorder" Storyboard.TargetProperty="Width"> |
477 | 492 | <DiscreteDoubleKeyFrame KeyTime="0" Value="0.0" /> |
478 | 493 | <SplineDoubleKeyFrame |
479 | 494 | KeySpline="1.0, 1.0, 0.0, 1.0" |
480 | 495 | KeyTime="0:0:0.333" |
481 | | - Value="-1.0" /> |
| 496 | + Value="1.0" /> |
482 | 497 | </DoubleAnimationUsingKeyFrames> |
483 | 498 | </Storyboard> |
484 | 499 | </BeginStoryboard> |
|
501 | 516 | <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="(Border.Visibility)"> |
502 | 517 | <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" /> |
503 | 518 | </ObjectAnimationUsingKeyFrames> |
504 | | - <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="Tag"> |
| 519 | + <DoubleAnimationUsingKeyFrames Storyboard.TargetName="AnimationFactorBorder" Storyboard.TargetProperty="Width"> |
505 | 520 | <DiscreteDoubleKeyFrame KeyTime="0" Value="1.0" /> |
506 | 521 | <SplineDoubleKeyFrame |
507 | 522 | KeySpline="0.0, 0.0, 0.0, 1.0" |
|
518 | 533 | <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" /> |
519 | 534 | <DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="{x:Static Visibility.Collapsed}" /> |
520 | 535 | </ObjectAnimationUsingKeyFrames> |
521 | | - <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenterBorder" Storyboard.TargetProperty="Tag"> |
| 536 | + <DoubleAnimationUsingKeyFrames Storyboard.TargetName="AnimationFactorBorder" Storyboard.TargetProperty="Width"> |
522 | 537 | <DiscreteDoubleKeyFrame KeyTime="0" Value="0.0" /> |
523 | 538 | <SplineDoubleKeyFrame |
524 | 539 | KeySpline="1.0, 1.0, 0.0, 1.0" |
|
542 | 557 | Value="{StaticResource DefaultExpanderToggleButtonRightStyle}" |
543 | 558 | TargetName="HeaderSite"/> |
544 | 559 | <Setter Property="RenderTransform" |
545 | | - Value="{DynamicResource WidthAnimation}" |
| 560 | + Value="{DynamicResource WidthAnimationNegative}" |
546 | 561 | TargetName="ContentPresenterBorder" /> |
547 | 562 | </Trigger> |
548 | 563 |
|
|
558 | 573 | Value="{StaticResource DefaultExpanderToggleButtonUpStyle}" |
559 | 574 | TargetName="HeaderSite"/> |
560 | 575 | <Setter Property="RenderTransform" |
561 | | - Value="{DynamicResource HeightAnimation}" |
| 576 | + Value="{DynamicResource HeightAnimationPositive}" |
562 | 577 | TargetName="ContentPresenterBorder" /> |
563 | 578 | </Trigger> |
564 | 579 |
|
565 | 580 | <Trigger Property="ExpandDirection" |
566 | 581 | Value="Down"> |
567 | 582 | <Setter Property="RenderTransform" |
568 | | - Value="{DynamicResource HeightAnimation}" |
| 583 | + Value="{DynamicResource HeightAnimationNegative}" |
569 | 584 | TargetName="ContentPresenterBorder" /> |
570 | 585 | </Trigger> |
571 | 586 |
|
|
581 | 596 | Value="{StaticResource DefaultExpanderToggleButtonLeftStyle}" |
582 | 597 | TargetName="HeaderSite"/> |
583 | 598 | <Setter Property="RenderTransform" |
584 | | - Value="{DynamicResource WidthAnimation}" |
| 599 | + Value="{DynamicResource WidthAnimationPositive}" |
585 | 600 | TargetName="ContentPresenterBorder" /> |
586 | 601 | </Trigger> |
587 | 602 |
|
|
0 commit comments