Кажется, я не могу понять, как рисовать графику в приложении для телефона Windows на С#. Я хочу нарисовать, например, строку. В старых школьных формах Windows я добавляю обработчик событий в событие Paint Paint. Затем используйте графический объект GDI+. Но в каких-либо элементах управления нет события рисования?
Итак, как рисовать линию на холсте в приложении для телефона Windows?
Думаю, мне нужно уточнить. Я хочу создать динамическую графику, и я хочу использовать С#. Я хочу, чтобы частота обновления составляла 30 кадров в секунду, и мне нужно всего несколько графических элементов примерно 100.
Если вы хотите получить низкий уровень доступа к 2D или 3D, как при использовании DirectX, вы можете взглянуть на SharpDX
Есть несколько примеров для Windows Phone в Github:
Вы начинаете с добавления Canvas в форму и затем.Add() графических объектов к дочерним элементам холста - это делает объект масштабированным для вас движком, который является довольно аккуратным. Обычно выглядит так:
line = new **Line**();
line.Stroke = Brushes.Yellow;
line.X1 = 0;
line.Y1 = 0;
line.X2 = 100;
line.Y2 = 100;
line.StrokeThickness = 2;
yourCanvas.Children.**Add(line)**;
Просто снимите ** с кода - они предназначены для захвата внимания.
Фактически, когда я рисовал динамические гиперкубы, я никогда не использовал версию XAML, но если вам нужна статическая структура или даже субструктура, то XAML - это путь. Насколько я понимаю, Children.Add() динамически создает узел в анализируемом дереве XAML, который хранит в памяти.NET. Если вы не можете добиться небольшого повышения производительности для динамически позиционированной графики, которую накладывает WPF, вам нужно будет придерживаться DirectX или OpenGL для лучшей производительности.
.Add()
в технологиях на основе XAML. Вот для чего XAML.
static structure
- извините, вы понятия не имеете, о чем говорите. -1. Смотрите мой пример правильно спроектированного пользовательского интерфейса "динамические линии" в XAML. Нет процедурного кода. Это на самом деле ListBox
. Кстати, поскольку я никогда не ходил в какие-либо школы, я понятия не имею, что такое «динамические гиперкубы», однако я знаю XAML и правильный способ его использования;)
если вам нужна строка, используйте класс Line
:
<Page xmlns="whatever">
<Grid>
<Line X1="0" Y1="0" X2="10" Y2="10" Stroke="Blue" StrokeThickness="2"/>
</Grid>
</Page>
Кроме этого, обратитесь к MSDN.
Забудьте о любых процедурных парадигмах, которые вы могли бы узнать в архаичных технологиях. Современные технологии являются декларативными.
<Line X1="0" Y1="0" X2="10" Y2="10" Stroke="Blue" StrokeThickness="2"/>
или что-то еще.