Beispiel #1
0
 static PageClone()
 {
     Control.IsTabStopProperty.OverrideMetadata(typeof(PageClone),
                                                new FrameworkPropertyMetadata(SharedInstances.BoxedFalse));
     KeyboardNavigation.DirectionalNavigationProperty.OverrideMetadata(typeof(PageClone),
                                                                       new FrameworkPropertyMetadata(
                                                                           SharedInstances <KeyboardNavigationMode> .Box(KeyboardNavigationMode.Cycle)));
     KeyboardNavigation.TabNavigationProperty.OverrideMetadata(typeof(PageClone),
                                                               new FrameworkPropertyMetadata(
                                                                   SharedInstances <KeyboardNavigationMode> .Box(KeyboardNavigationMode.Cycle)));
     KeyboardNavigation.ControlTabNavigationProperty.OverrideMetadata(typeof(PageClone),
                                                                      new FrameworkPropertyMetadata(
                                                                          SharedInstances <KeyboardNavigationMode> .Box(KeyboardNavigationMode.Cycle)));
     FocusManager.IsFocusScopeProperty.OverrideMetadata(typeof(PageClone),
                                                        new FrameworkPropertyMetadata(SharedInstances.BoxedTrue));
 }
Beispiel #2
0
        static WindowClone()
        {
            //This OverrideMetadata call tells the system that this element wants to provide a style that is different than its base class.
            //This style is defined in themes\generic.xaml
            DefaultStyleKeyProperty.OverrideMetadata(typeof(WindowClone),
                                                     new FrameworkPropertyMetadata(typeof(WindowClone)));

            Control.IsTabStopProperty.OverrideMetadata(typeof(WindowClone),
                                                       new FrameworkPropertyMetadata(SharedInstances.BoxedFalse));
            KeyboardNavigation.DirectionalNavigationProperty.OverrideMetadata(typeof(WindowClone),
                                                                              new FrameworkPropertyMetadata(
                                                                                  SharedInstances <KeyboardNavigationMode> .Box(KeyboardNavigationMode.Cycle)));
            KeyboardNavigation.TabNavigationProperty.OverrideMetadata(typeof(WindowClone),
                                                                      new FrameworkPropertyMetadata(
                                                                          SharedInstances <KeyboardNavigationMode> .Box(KeyboardNavigationMode.Cycle)));
            KeyboardNavigation.ControlTabNavigationProperty.OverrideMetadata(typeof(WindowClone),
                                                                             new FrameworkPropertyMetadata(
                                                                                 SharedInstances <KeyboardNavigationMode> .Box(KeyboardNavigationMode.Cycle)));
            FocusManager.IsFocusScopeProperty.OverrideMetadata(typeof(WindowClone),
                                                               new FrameworkPropertyMetadata(SharedInstances.BoxedTrue));
        }
        public object GetCreateShare(ComponentRegistration registration)
        {
            lock (syncObj)
            {
                if (registration.Sharing == InstanceSharing.Shared)
                {
                    object component;
                    if (SharedInstances.TryGetValue(registration.Service, out component))
                    {
                        return(component);
                    }
                }

                object instance = registration.Activator.Activate(this);
                Disposer.AddItemsToDispose(instance);

                if (registration.Sharing == InstanceSharing.Shared)
                {
                    SharedInstances.Add(registration.Service, instance);
                }

                return(instance);
            }
        }