//Callback on 'TopMost' property changed private static void OnTopMostChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var popup = d as Popup; if (popup != null) { var config = GetConfigs(d); if (config == null) { config = new PopupConfigs(); SetConfigs(d, config); } config.OnTop = (bool)e.NewValue; if (popup.IsOpen) { setAlwaysOnTop(popup, config.OnTop); } } }
private void getPopupConfig(out PopupConfigs pConfig, string name) { //Get config from logger PopupConfigs config = null; object obj = Logger.getLogger().getLogOfObject(name); //Check data if (obj != null) { config = obj as PopupConfigs; } if (config != null) { pConfig = config; } else { pConfig = new PopupConfigs(); } }
//Callback on 'IsInView' property changed private static void OnIsInViewChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var popup = d as Popup; if (popup != null) { var config = GetConfigs(d); if ((bool)e.NewValue) { if (!popup.IsOpen) { popup.IsOpen = true; } //Set location if (config == null) { config = new PopupConfigs(); SetConfigs(d, config); } else { setAlwaysOnTop(popup, config.OnTop); setPopupLocation(popup, (int)config.XOffset, (int)config.YOffset); } } else { //Log location if (config == null) { config = new PopupConfigs(); SetConfigs(d, config); } var point = getPopupLocation(popup); config.XOffset = point.X; config.YOffset = point.Y; if (popup.IsOpen) { popup.IsOpen = false; } } } }
public static void SetConfigs(DependencyObject obj, PopupConfigs value) { obj.SetValue(ConfigsProperty, value); }