mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 11:56:30 +00:00
Implemented keyframe easing
This commit is contained in:
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user