initial commit

This commit is contained in:
i2p
2026-08-27 11:22:54 -06:00
commit 3d81b11e14
2281 changed files with 54227 additions and 0 deletions
@@ -0,0 +1,80 @@
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;
namespace Crysome.Server.Controls;
[TemplatePart(Name = "PART_OldContent", Type = typeof(ContentPresenter))]
[TemplatePart(Name = "PART_NewContent", Type = typeof(ContentPresenter))]
public class PageTransitionControl : ContentControl
{
private ContentPresenter _oldContent;
private ContentPresenter _newContent;
static PageTransitionControl()
{
FrameworkElement.DefaultStyleKeyProperty.OverrideMetadata(typeof(PageTransitionControl), (PropertyMetadata)(object)new FrameworkPropertyMetadata((object)typeof(PageTransitionControl)));
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
_oldContent = GetTemplateChild("PART_OldContent") as ContentPresenter;
_newContent = GetTemplateChild("PART_NewContent") as ContentPresenter;
if (_newContent != null)
{
_newContent.Content = base.Content;
}
}
protected override void OnContentChanged(object oldContent, object newContent)
{
base.OnContentChanged(oldContent, newContent);
if (_oldContent != null && _newContent != null)
{
_oldContent.Content = oldContent;
_newContent.Content = newContent;
_oldContent.RenderTransform = new TranslateTransform();
_newContent.RenderTransform = new TranslateTransform();
_oldContent.Opacity = 1.0;
_newContent.Opacity = 0.0;
AnimateTransition();
}
}
private void AnimateTransition()
{
Storyboard storyboard = new Storyboard();
TimeSpan timeSpan = TimeSpan.FromMilliseconds(300L, 0L);
CubicEase easingFunction = new CubicEase
{
EasingMode = EasingMode.EaseOut
};
DoubleAnimation doubleAnimation = new DoubleAnimation(0.0, -50.0, timeSpan)
{
EasingFunction = easingFunction
};
DoubleAnimation doubleAnimation2 = new DoubleAnimation(1.0, 0.0, timeSpan);
Storyboard.SetTarget((DependencyObject)(object)doubleAnimation, (DependencyObject)(object)_oldContent);
Storyboard.SetTargetProperty((DependencyObject)(object)doubleAnimation, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)"));
Storyboard.SetTarget((DependencyObject)(object)doubleAnimation2, (DependencyObject)(object)_oldContent);
Storyboard.SetTargetProperty((DependencyObject)(object)doubleAnimation2, new PropertyPath("Opacity"));
DoubleAnimation doubleAnimation3 = new DoubleAnimation(50.0, 0.0, timeSpan)
{
EasingFunction = easingFunction
};
DoubleAnimation doubleAnimation4 = new DoubleAnimation(0.0, 1.0, timeSpan);
Storyboard.SetTarget((DependencyObject)(object)doubleAnimation3, (DependencyObject)(object)_newContent);
Storyboard.SetTargetProperty((DependencyObject)(object)doubleAnimation3, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)"));
Storyboard.SetTarget((DependencyObject)(object)doubleAnimation4, (DependencyObject)(object)_newContent);
Storyboard.SetTargetProperty((DependencyObject)(object)doubleAnimation4, new PropertyPath("Opacity"));
storyboard.Children.Add(doubleAnimation);
storyboard.Children.Add(doubleAnimation2);
storyboard.Children.Add(doubleAnimation3);
storyboard.Children.Add(doubleAnimation4);
storyboard.Begin();
}
}