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)); }
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); } }