Рисование линий в коде с использованием C# и WPF

Я пытаюсь создать цифровой дисплей часов, используя 7-сегментные дисплеи. Я могу рисовать линии в XAML, используя такой код:

<Line Name="line7" Stroke="Black" StrokeThickness="4" X1="10" X2="40" Y1="70" Y2="70" Margin="101,-11,362,250" />

Но когда я пытаюсь сделать это в коде (из MainWindow()), это не работает:

        Line line = new Line();
        Thickness thickness = new Thickness(101,-11,362,250);
        line.Margin = thickness;
        line.Visibility = System.Windows.Visibility.Visible;
        line.StrokeThickness = 4;
        line.Stroke = System.Windows.Media.Brushes.Black;
        line.X1 = 10;
        line.X2 = 40;
        line.Y1 = 70;
        line.Y2 = 70;

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


person Jesse    schedule 11.05.2011    source источник
comment
Что значит не работает, что именно происходит? Ничего такого? Похоже, вы создали линию, но ничего с ней не сделали. Очень похоже на создание метода, который выполняет много работы, но никогда не вызывается.   -  person The Muffin Man    schedule 11.05.2011
comment
Извините, это было не так ясно, как могло бы быть. Я имел в виду, что линия не рисовала себя на экране.   -  person Jesse    schedule 12.05.2011


Ответы (2)


Это весь ваш код рисования? Если это так, вам нужно добавить объект line на вашу поверхность. Если вы используете Canvas, например:

myCanvas.Children.Add(line);

Это добавит вашу линию на холст. На данный момент вы просто создаете линию, но никуда ее не кладете.

Дополнительную информацию о рисовании в WPF можно найти на странице эта страница MSDN.

person keyboardP    schedule 11.05.2011
comment
Спасибо! Вот чего мне не хватало! - person Jesse; 11.05.2011
comment
Предположим, я хочу добавить линию к изображению. Как я могу это сделать? - person Jonas; 04.07.2014
comment
@Jonas - это может помочь stackoverflow.com/questions/5231086/ - person keyboardP; 05.07.2014

person    schedule
comment
это ответ только для кода, попробуйте объяснить, что он делает - person Hamid Pourjam; 10.06.2015