示例#1
0
        protected float GetUnitsForOffset(
            ScaleMode mode,
            float value,
            LayoutBase reference,
            Vector2Axis axis
            )
        {
            switch (mode)
            {
            case ScaleMode.ScaleNormalizedPercent:
                return(value * axis(scaledSize));

            case ScaleMode.ReferenceScalePercent:
                if (reference == null)
                {
                    goto case ScaleMode.ScaleNormalizedPercent;
                }
                return(value
                       * axis(scaledSize)
                       * axis(reference.totalScale)
                       / axis(totalScale));

            default:
                return(GetUnitsForScale(mode, value, reference, axis));
            }
        }
示例#2
0
        /// Returns the size in screen units for a scale mode and a value.
        protected float GetUnitsForScale(
            ScaleMode mode,
            float value,
            LayoutBase reference,
            Vector2Axis axis
            )
        {
            switch (mode)
            {
            case ScaleMode.UnadjustedUnits:
                return(value * axis(baseScale));

            case ScaleMode.ScaleNormalizedUnits:
                return(value);

            case ScaleMode.ScaleNormalizedPercent:
                return(value * axis(unscaledSize));

            case ScaleMode.ReferenceScalePercent:
                if (reference == null)
                {
                    goto case ScaleMode.ScaleNormalizedPercent;
                }
                return(value
                       * axis(reference.totalScale)
                       * axis(unscaledSize));

            case ScaleMode.ReferenceSizePercent:
                if (reference == null)
                {
                    goto case ScaleMode.ScreenPercent;
                }
                return(value * axis(reference.scaledSize));

            case ScaleMode.ScreenPercent:
                return(value * axis(screenSize));

            case ScaleMode.DpiScaledPixels:
                return(value * axis(unitsPerDpiPixel));

            case ScaleMode.Pixels:
                return(value * axis(unitsPerPixel));

            default:
                return(0);
            }
        }