Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FocusManagerExtensions
- {
- public static readonly DependencyProperty IsFocusedProperty = DependencyProperty.RegisterAttached("IsFocused", typeof(bool?), typeof(FocusManagerExtensions), new FrameworkPropertyMetadata(IsFocusedChanged));
- public static bool? GetIsFocused(DependencyObject element)
- {
- if (element == null) {
- throw new ArgumentNullException("element");
- }
- return (bool?)element.GetValue(IsFocusedProperty);
- }
- public static void SetIsFocused(DependencyObject element, bool? value)
- {
- if (element == null) {
- throw new ArgumentNullException("element");
- }
- element.SetValue(IsFocusedProperty, value);
- }
- private static void IsFocusedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- object fe = (FrameworkElement)d;
- if (e.OldValue == null) {
- fe.GotFocus += FrameworkElement_GotFocus;
- fe.LostFocus += FrameworkElement_LostFocus;
- }
- if ((bool)e.NewValue) {
- fe.Focus();
- }
- }
- private static void FrameworkElement_GotFocus(object sender, RoutedEventArgs e)
- {
- ((FrameworkElement)sender).SetValue(IsFocusedProperty, true);
- }
- private static void FrameworkElement_LostFocus(object sender, RoutedEventArgs e)
- {
- ((FrameworkElement)sender).SetValue(IsFocusedProperty, false);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement