RGB коды из текстового поля - PullRequest
0 голосов
/ 07 октября 2018

(Прежде всего, я новичок, потому что я только начал изучать c # 2 недели назад) Я получил упражнение от моего учителя: написать программу для рисования звезды.Позвольте пользователю определять значения R, G и B с помощью текстовых полей, чтобы ваша программа могла рисовать звезду любым цветом!

У меня есть этот код, и он рисует звезду, но я не знаю, как это сделать.получить числа из текстовых полей, чтобы заменить R, G и B.

    public MainWindow()
    {
        InitializeComponent();

        Line myLine = new Line();
        myLine.Stroke = new SolidColorBrush(Color.FromRgb(r, g, b));
        myLine.StrokeThickness = 2;
        myLine.X1 = 200;
        myLine.Y1 = 1;
        myLine.X2 = 80;
        myLine.Y2 = 350;
        caPaper.Children.Add(myLine);

        Line mLine = new Line();
        mLine.Stroke = new SolidColorBrush(Color.FromRgb(r, g, b));
        mLine.StrokeThickness = 2;
        mLine.X1 = 200;
        mLine.Y1 = 1;
        mLine.X2 = 320;
        mLine.Y2 = 350;
        caPaper.Children.Add(mLine);

        Line vLine = new Line();
        vLine.Stroke = new SolidColorBrush(Color.FromRgb(r, g, b));
        vLine.StrokeThickness = 2;
        vLine.X1 = 1;
        vLine.Y1 = 120;
        vLine.X2 = 320;
        vLine.Y2 = 350;
        caPaper.Children.Add(vLine);

        Line bLine = new Line();
        bLine.Stroke = new SolidColorBrush(Color.FromRgb(r, g, b));
        bLine.StrokeThickness = 2;
        bLine.X1 = 399;
        bLine.Y1 = 120;
        bLine.X2 = 80;
        bLine.Y2 = 350;
        caPaper.Children.Add(bLine);

        Line nLine = new Line();
        nLine.Stroke = new SolidColorBrush(Color.FromRgb(r, g, b));
        nLine.StrokeThickness = 2;
        nLine.X1 = 1;
        nLine.Y1 = 120;
        nLine.X2 = 399;
        nLine.Y2 = 120;
        caPaper.Children.Add(nLine);


    }

    private void txtR_TextChanged(object sender, TextChangedEventArgs e)
    {

    }

    private void txtG_TextChanged(object sender, TextChangedEventArgs e)
    {

    }

    private void txtB_TextChanged(object sender, TextChangedEventArgs e)
    {

    }

1 Ответ

0 голосов
/ 07 октября 2018

просто используйте byte.Parse() для разбора чисел из текстовых полей:

Color.FromRgb( byte.Parse(txtR.Text), byte.Parse(txt.G.Text), byte.Parse(txtB.Text));

или даже лучше:

   byte r = byte.Parse(txtR.Text),
   g = byte.Parse(txt.G.Text),
   b =  byte.Parse(txtB.Text);

выполните приведенный выше код один раз в начале вашего метода.

...