C#, метод расширения RenderTransform не принимает первый аргумент типа System.Drawing.Rectangle

private void RemoveUnfitChromosomes()
        {
            int[] buildingLW = new int[2 * buildingNo];     //2x for length & width

            for (int i = 0; i <= 2 * (buildingNo - 1);)        //working values to be changed for user input
            {
                buildingLW[i] = 30;     //l,x
                buildingLW[i + 1] = 10;     //w.y

                i = i + 2;
            }

            foreach (int[] chromosome in population)
            {
                int[] temp = new int[3 * buildingNo];
                List<Rectangle> building = new List<Rectangle>();

                Array.Copy(chromosome, temp, 3 * buildingNo);

                for (int j = 0; j < buildingNo; j++)
                {
                    building[j] = new Rectangle(temp[3 * j] - buildingLW[2 * j] / 2, temp[3 * j + 1] + buildingLW[2 * j + 1] / 2, buildingLW[2 * j + 1], buildingLW[2 * j]);

                    RotateTransform rotate = new RotateTransform();
                    rotate.Angle = temp[j+2];
                    rotate.CenterX = temp[j];
                    rotate.CenterY = temp[j+1];

                    building[j].RenderTransform= rotate;
                }

Моя проблема здесь building[j].RenderTransform= rotate;, и у меня будет этот метод расширения RenderTransform, не принимающий первый аргумент типа «System.Drawing.Rectangle». Я понимаю, что прямоугольная структура не имеет метода вращения. Меня просто смущает информация, которую я имею.

Выше приведен мой код, в котором я пытаюсь импортировать свои данные из другой части моего кода, а затем вращать свой прямоугольник, построенный на основе этих данных. К вашему сведению, я пытаюсь увидеть, пересекаются ли какие-либо из этих прямоугольников друг с другом. Меня смущает следующий код из http://msdn.microsoft.com/en-us/library/ms754009(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2. В их коде можно было использовать polyline2.RenderTransform, так что я тоже могу это сделать?

Я пытался искать в Интернете в течение нескольких часов, но я новичок в программировании и иногда не могу понять, что люди говорят, поэтому прошу прощения, если вопрос повторяется. Спасибо за уделенное время.


person user3020631    schedule 22.11.2013    source источник


Ответы (1)


RenderTransform — это не метод расширения, это свойство, и оно есть и у Rectangle. System.Windows.Shapes.Rectangle не System.Drawing.Rectangle

person MikeSW    schedule 22.11.2013
comment
Спасибо. Мне удалось изменить прямоугольник на System.Windows.Shapes.Rectangle, но теперь я не могу использовать метод .IntersectsWith. Любая помощь? Спасибо - person user3020631; 22.11.2013
comment
Я не вижу никакого метода IntersectsWith(). Вы, вероятно, используете Visual Studio, поэтому, когда курсор находится поверх метода, нажмите F1, чтобы получить онлайн-справку для этого метода. - person MikeSW; 22.11.2013