public object ProvideValue(IServiceProvider serviceProvider)
        {
            if (s_layoutService == null)
            {
                System.Diagnostics.Debug.WriteLine("ScaledThickness has no ILayoutService!");

                var tc = new ThicknessTypeConverter();
                return(tc.ConvertFromInvariantString(Thickness));
            }

            var sizeStrings = Thickness.Split(',');
            var sizes       = new int[sizeStrings.Length];

            for (int i = 0; i < sizes.Length; i++)
            {
                sizes[i] = s_layoutService.GetScaledInt32(Convert.ToInt32(sizeStrings[i]));
            }

            switch (sizes.Length)
            {
            case 1:
                return(new Thickness(sizes[0]));

            case 2:
                return(new Thickness(sizes[0], sizes[1]));

            case 4:
                return(new Thickness(sizes[0], sizes[1], sizes[2], sizes[3]));
            }

            throw new Exception("Unable to convert to ScaledThickness: " + Thickness);
        }
예제 #2
0
        public object ProvideValue(IServiceProvider serviceProvider)
        {
            if (s_layoutService == null)
            {
                System.Diagnostics.Debug.WriteLine("ScaledInteger has no ILayoutService!");

                return(Size);
            }
            var scaled = s_layoutService.GetScaledInt32(Size);

            return((int)scaled);
        }