Как передавать переменные данные между страницами в WPF - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь передать координаты x и y с одной страницы на другую в wpf.Первая страница использовала x и y для создания прямоугольника. Теперь я хочу использовать эти данные для рисования линий.

Я попытался вызвать новый экземпляр первой страницы, а затем сослаться на переменную из нового экземпляра, но при запуске я не нашел ни одной строки в сетке.

Со страницы 1:

private double xval;

    public double xcoord
    {
        get => xval;
        set
        {
            xval = value;
            CreateARectangle();
        }
    }

    private double yval;

    public double ycoord
    {
        get => yval;
        set
        {
            yval = value;
            CreateARectangle();
        }
    }
    Rectangle rect = null;
    public void CreateARectangle(){
        if (rect == null)
        {
            // Creates a Rectangle  
            rect = new Rectangle();
            rect.Height = ycoord;
            rect.Width = xcoord;
            // Create a Brush  
            SolidColorBrush colorbrush = new SolidColorBrush();
            colorbrush.Color = Colors.Red;
            colorbrush.Opacity = .3;
            SolidColorBrush blackBrush = new SolidColorBrush();
            blackBrush.Color = Colors.Black;
            // Set Rectangle's width and color  
            rect.StrokeThickness = 1;
            rect.Stroke = blackBrush;
            // Fill rectangle with color  
            rect.Fill = colorbrush;
            // Add Rectangle to the Grid.  
            can.Children.Add(rect);
        }
        else
        {
            rect.Height = ycoord;
            rect.Width = xcoord;
        }
    }

Со страницы 2:

public void drawLine()
     {
        ///top line in rectangle
        Line results = new Line();
        ///will be the bottom line in the new rectangle
        Line bottom = new Line();
        ///left connecting line
        Line left = new Line();
        ///right connecting line
        Line right = new Line();

        double test;
        FEModel fe = new FEModel();
        test=fe.xcoord;

        ///top line code
        results.Stroke = System.Windows.Media.Brushes.Red;
        results.Opacity =.3;
        results.X1 = test;
        results.X2 = test;
        results.Y1 = test;
        results.Y2 = test;
        results.HorizontalAlignment = HorizontalAlignment.Left;
        results.VerticalAlignment = VerticalAlignment.Center;
        results.StrokeThickness = 2;
        resultscan.Children.Add(results);

Я просто использовал тестовую переменную в X1, X2, Y1 и Y2, чтобы посмотреть,на самом деле работал ... что это не ..

Он компилируется, но на экране не отображаются строки.Переменные Xcoord и Ycoord прекрасно работают при построении прямоугольника со страницы 1 ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...