Implemented keyframe easing

This commit is contained in:
SpoinkyNL committed 2020-01-12 23:49:10 +01:00
1 parent 1a96707e5b
commit ac7e0d4f78
33 files changed
+651 -164

No files matched your search

@@ -0,0 +1,43 @@
using System.Windows;
namespace Artemis.UI.Behaviors
{
public class InputBindingBehavior
{
public static readonly DependencyProperty PropagateInputBindingsToWindowProperty =
DependencyProperty.RegisterAttached("PropagateInputBindingsToWindow", typeof(bool), typeof(InputBindingBehavior),
new PropertyMetadata(false, OnPropagateInputBindingsToWindowChanged));
public static bool GetPropagateInputBindingsToWindow(FrameworkElement obj)
{
return (bool) obj.GetValue(PropagateInputBindingsToWindowProperty);
}
public static void SetPropagateInputBindingsToWindow(FrameworkElement obj, bool value)
{
obj.SetValue(PropagateInputBindingsToWindowProperty, value);
}
private static void OnPropagateInputBindingsToWindowChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((FrameworkElement) d).Loaded += OnLoaded;
}
private static void OnLoaded(object sender, RoutedEventArgs e)
{
var frameworkElement = (FrameworkElement)sender;
frameworkElement.Loaded -= OnLoaded;
var window = Window.GetWindow(frameworkElement);
if (window == null) return;
// Move input bindings from the FrameworkElement to the window.
for (var i = frameworkElement.InputBindings.Count - 1; i >= 0; i--)
{
var inputBinding = frameworkElement.InputBindings[i];
window.InputBindings.Add(inputBinding);
frameworkElement.InputBindings.Remove(inputBinding);
}
}
}
}