Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2013, 15:36   #1
AlexSSS3
 
Регистрация: 08.04.2013
Сообщений: 9
По умолчанию Ошибка, при создании point в Polygon

Код:
List<Point> Points =  new List<Point>();
LayoutRoot.Children.Add(new Polygon() {
Points.Add(endingPoint),
Stroke = System.Windows.Media.Brushes.Black,
Fill = System.Windows.Media.Brushes.LightSeaGreen,
StrokeThickness = 2,
HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = VerticalAlignment.Center,
});
Вылазит ошибка на 3 строчке. "Неверное объявление инициализатора члена"
Как ее можно исправить, работаю в WPF
Благодарю!
AlexSSS3 вне форума Ответить с цитированием
Старый 08.04.2013, 16:10   #2
AlexSSS3
 
Регистрация: 08.04.2013
Сообщений: 9
По умолчанию

Код:
 Polygon myPolygon = new Polygon();
        private void Canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) {
            startingPoint = e.GetPosition(LayoutRoot);
            myPolygon.Stroke = System.Windows.Media.Brushes.Black;
            myPolygon.Fill = System.Windows.Media.Brushes.LightSeaGreen;
            myPolygon.StrokeThickness = 2;
            myPolygon.HorizontalAlignment = HorizontalAlignment.Left;
            myPolygon.VerticalAlignment = VerticalAlignment.Center;
            System.Windows.Point Point1 = new System.Windows.Point(startingPoint.X, startingPoint.Y);
            PointCollection myPointCollection = new PointCollection();
            myPointCollection.Add(Point1);
            myPolygon.Points = myPointCollection;
            LayoutRoot.Children.Add(myPolygon);
        }
Попробовал вот так, теперь выдает ошибку такую:
"Указанный элемент Visual уже является дочерним по отношению к другому элементу Visual или корневому элементу CompositionTarget".
AlexSSS3 вне форума Ответить с цитированием
Старый 08.04.2013, 16:48   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Код:
Вылазит ошибка на 3 строчке. "Неверное объявление инициализатора члена"
что тут не понятно?
eval вне форума Ответить с цитированием
Старый 08.04.2013, 18:19   #4
AlexSSS3
 
Регистрация: 08.04.2013
Сообщений: 9
По умолчанию

Как можно исправить? Чтобы по клику мыши, заносились точки и отображались нa Window?

В XAML написано:
Код:
<Canvas MouseLeftButtonDown="Canvas_MouseLeftButtonDown"
            MouseLeftButtonUp="Canvas_MouseLeftButtonUp"
            Background="White"
            x:Name="LayoutRoot">
 
    </Canvas>
AlexSSS3 вне форума Ответить с цитированием
Старый 08.04.2013, 19:22   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

вам же пишет, что нельзя работать со свойствами как тут - Points.Add(endingPoint) т.к. тут инициализаторы, т.е. можно только инициализировать (а = b)
eval вне форума Ответить с цитированием
Старый 09.04.2013, 10:24   #6
AlexSSS3
 
Регистрация: 08.04.2013
Сообщений: 9
По умолчанию

C этой проблемой в принципе разобрался. Но как создать массив точек, то есть кликаешь, отображается точка, а потом соединяется.

Вот, объявил массив:
Код:
List<Point> Points =  new List<Point>();
То уже не получается использовать
Код:
startingPoint = e.GetPosition(LayoutRoot);
Как можно решить?
AlexSSS3 вне форума Ответить с цитированием
Старый 09.04.2013, 10:33   #7
AlexSSS3
 
Регистрация: 08.04.2013
Сообщений: 9
По умолчанию

Код:
        private Point points;


        Polygon myPolygon = new Polygon();
        private void Canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) {
            points = e.GetPosition(LayoutRoot);
            Polygon myPolygon = new Polygon();
            myPolygon.Stroke = Brushes.Black;
            myPolygon.Fill = Brushes.LightSeaGreen;
            myPolygon.StrokeThickness = 2;
            myPolygon.HorizontalAlignment = HorizontalAlignment.Left;
            myPolygon.VerticalAlignment = VerticalAlignment.Center;
            System.Windows.Point Point1 = new System.Windows.Point(points.X, points.Y);
            System.Windows.Point Point2 = new System.Windows.Point(points.X, points.Y);
            PointCollection myPointCollection = new PointCollection();
            myPointCollection.Add(Point1);
            myPointCollection.Add(Point2);
            myPolygon.Points = myPointCollection;
            LayoutRoot.Children.Add(myPolygon);
        }
Вот, вроде работает. Но как мне теперь эти точки соединить?
AlexSSS3 вне форума Ответить с цитированием
Старый 09.04.2013, 10:47   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

что значит соединить? линию от одной к другой нарисовать или что?
eval вне форума Ответить с цитированием
Старый 09.04.2013, 11:28   #9
AlexSSS3
 
Регистрация: 08.04.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
что значит соединить? линию от одной к другой нарисовать или что?
Да. Вот, тривиальный пример
Изображения
Тип файла: jpg uCwM85mYqkCT1NSbonmlOQ.jpg (7.0 Кб, 114 просмотров)
AlexSSS3 вне форума Ответить с цитированием
Старый 09.04.2013, 11:32   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

http://msdn.microsoft.com/en-us/library/ms747393.aspx
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при создании модуля temka_buiko Паскаль, Turbo Pascal, PascalABC.NET 6 10.10.2012 22:17
Ошибка при создании COM сервера reggga C++ Builder 0 13.02.2012 18:22
Ошибка при создании БД alt5000 PHP 12 26.11.2011 18:46
Ошибка при создании сокета teapot C++ Builder 2 10.08.2011 11:30
Ошибка при создании таблицы ProgDel БД в Delphi 5 07.11.2010 11:31