コード例 #1
0
        protected override object InnerRun(List <Variable> variables)
        {
            Element element = null;

            object[] parameterValues = (object[])parameters.Run(variables);
            switch (name)
            {
            case "center":
                StaticFunctions.Center(parameterValues);
                return(null);

            case "margin":
                StaticFunctions.Margin(parameterValues);
                return(null);

            case "padding":
                StaticFunctions.Padding(parameterValues);
                return(null);

            case "leftHalf":
                element         = (Element)parameterValues[0];
                element.Margin += new Thickness("0px", "50%", "0px", "0px");
                return(null);

            case "topLeftQuarter":
            case "leftTopQuarter":
                element         = (Element)parameterValues[0];
                element.Margin += new Thickness("0px", "50%", "50%", "0px");
                return(null);

            case "bottomLeftQuarter":
            case "leftBottomQuarter":
                element         = (Element)parameterValues[0];
                element.Margin += new Thickness("50%", "50%", "0px", "0px");
                return(null);

            case "rightHalf":
                element         = (Element)parameterValues[0];
                element.Margin += new Thickness("0px", "0px", "0px", "50%");
                return(null);

            case "topRightQuarter":
            case "rightTopQuarter":
                element         = (Element)parameterValues[0];
                element.Margin += new Thickness("0px", "0px", "50%", "50%");
                return(null);

            case "bottomRightQuarter":
            case "rightBottomQuarter":
                element         = (Element)parameterValues[0];
                element.Margin += new Thickness("50%", "0px", "0px", "50%");
                return(null);

            case "topHalf":
                element         = (Element)parameterValues[0];
                element.Margin += new Thickness("0px", "0px", "50%", "0px");
                return(null);

            case "bottomHalf":
                element         = (Element)parameterValues[0];
                element.Margin += new Thickness("50%", "0px", "0px", "0px");
                return(null);

            case "resetMargin":
                StaticFunctions.ResetMargin(parameterValues);
                return(null);

            case "image":
                return(StaticFunctions.LoadImage(parameterValues));

            case "youtube":
                return(StaticFunctions.LoadYoutubeVideo(parameterValues));

            case "pattern":
                return(Patterns.Pattern.GetByName(((VariableCommand)parameters.Parameters[0]).Name));

            case "noPattern":
                return(null);

            default:
                throw new ArgumentException("No static function named " + name + ".");
            }
        }