Windows Phone - rysowanie lini w c#

0

Dzień dobry, mam jedną jedyną prośbę, jeśli ktoś kiedykolwiek programował pod Windows Phone, niech zdradzi mi jak narysować najprostszą linię. Muszę narysować wykres, pod windows mobile 6.5 jakoś sobie poradziłem ale pod WP7, troszkę najwidoczniej się pozmieniało. Bardzo proszę o odpowiedź.

0

Spróbuj Path. Pod Windows Phone też działa.
http://msdn.microsoft.com/en-us/library/system.windows.shapes.path.data(v=vs.95).aspx

0

Nie tylko troszkę - wszystko się pozmieniało.

Stwórz sobie po prostu element Line (na przykład wewnątrz elementu Canvas), i on będzie linią. Nie musisz sam rysować.

W XAML na przykład tak:

<Line X1="0" X2="100" Y1="0" Y2="100" Stroke="HotPink"/>

Możesz użyć gotowych elementów w rodzaju PolyLine: http://themobileexperience.macadamian.com/2010/04/drawing-charts-in-windows-phone-7-using.html

Ewentualnie, jak chcesz "w starym stylu" mazać po Canvasie, użyj tego: http://writeablebitmapex.codeplex.com/

0

Dzięki za odpowiedź, w xamlu to opracowałem;), problem polega jednak na tym że muszę narysować wykres funkcji i zależy mi na tym żeby to było napisane w c#. Ja próbowałem w ten sposób:

myLine = new Line();
myLine.Stroke = System.Windows.Media.Brushes.LightSteelBlue;
myLine.X1 = 1;
myLine.X2 = 50;
myLine.Y1 = 1;
myLine.Y2 = 50;
myLine.HorizontalAlignment = HorizontalAlignment.Left;
myLine.VerticalAlignment = VerticalAlignment.Center;
myLine.StrokeThickness = 2;
myGrid.Children.Add(myLine);

Pomijając że druga linia nie działa w ogóle(to przykład z msdn) to wszystko się kompiluje i nic nie działa. A już np podobny przykład też z msdn rysuje elipse

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;

namespace SDKSample
{
    public partial class SetBackgroundColorOfShapeExample : Page
    {
        public SetBackgroundColorOfShapeExample()
        {
            // Create a StackPanel to contain the shape.
            StackPanel myStackPanel = new StackPanel();

            // Create a red Ellipse.
            Ellipse myEllipse = new Ellipse();

            // Create a SolidColorBrush with a red color to fill the 
            // Ellipse with.
            SolidColorBrush mySolidColorBrush = new SolidColorBrush();

            // Describes the brush's color using RGB values. 
            // Each value has a range of 0-255.
            mySolidColorBrush.Color = Color.FromArgb(255, 255, 255, 0);
            myEllipse.Fill = mySolidColorBrush;
            myEllipse.StrokeThickness = 2;
            myEllipse.Stroke = Brushes.Black;

            // Set the width and height of the Ellipse.
            myEllipse.Width = 200;
            myEllipse.Height = 100;

            // Add the Ellipse to the StackPanel.
            myStackPanel.Children.Add(myEllipse);

            this.Content = myStackPanel;
        }

    }
}
0

Poradziłem sobie z problemem, problemem polegał na tym że nie nadawałem koloru linii i bez tego nie chciała się wyświetlić, tak to wygląda:

public partial class RysujFliniowa : PhoneApplicationPage
    {
        Line m_lineX = new Line();
        SolidColorBrush mySolidColorBrush = new SolidColorBrush(Colors.Red);
        public RysujFliniowa()
        {
            InitializeComponent();
            m_lineX.X1 = 0;
            m_lineX.X2 = 450;
            m_lineX.Y1 = 0;
            m_lineX.Y2 = 450;
            m_lineX.StrokeThickness = 4;
            m_lineX.Fill = mySolidColorBrush;
            m_lineX.Stroke = mySolidColorBrush;
            m_p_pulpit.Children.Add(m_lineX);
        }
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1