示例#1
0
        //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();
            }
        }
示例#3
0
        //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;
                    }
                }
            }
        }
示例#4
0
 public static void SetConfigs(DependencyObject obj, PopupConfigs value)
 {
     obj.SetValue(ConfigsProperty, value);
 }