Я хотел бы создать приложение WPF, которое отслеживает местоположение курсора мыши, обновляя изображение в обработчике событий MouseMove. Моя первоначальная мысль заключалась в том, чтобы создать GeometryDrawing, а затем добавить к нему пути, но я изо всех сил пытаюсь связать это в коде (хотя Xaml для GeometryDrawings кажется простым). Какой самый простой способ подключить этот материал - это просто для отладки, поэтому я не беспокоюсь об эффективности.
Самый простой способ нарисовать последовательность точек в WPF из кода
25.09.2009
- Я не совсем понимаю, что вы пытаетесь сделать... но не забывайте об InkCanvas, который позволяет вам "рисовать" поверх чего-либо... относительно простым способом. Но InkCanvas не отвечает на ваш вопрос, поэтому я решил вместо этого прокомментировать. 26.09.2009
Ответы:
1
А как насчет использования Polyline?
Вот xaml:
<Window
x:Class="CursorLine.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
>
<Canvas x:Name="canvas" Background="#00FFFFFF" MouseMove="Canvas_MouseMove">
<Polyline x:Name="polyline" Stroke="DarkGreen" StrokeThickness="3"/>
</Canvas>
</Window>
Вот код позади:
private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
polyline.Points.Add(e.GetPosition(canvas));
}
25.09.2009
2
Используйте GeometryGroup. Это может иметь несколько дочерних геометрий: в вашем случае вы должны добавить EllipseGeometry для каждой точки перемещения мыши с центром в местоположении мыши. Итак, что-то вроде:
private GeometryGroup _allMousePoints = new GeometryGroup();
void OnMouseMove(...)
{
_allMousePoints.Children.Add(
new EllipseGeometry {
Center = mouseLocation,
RadiusX = 3,
Radius Y = 3
});
}
Теперь вы можете использовать _allMousePoints в качестве геометрии GeometryDrawing или данных пути.
25.09.2009
Новые материалы
Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..
Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально
Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..
Частный метод Python: улучшение инкапсуляции и безопасности
Введение
Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..
Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования
Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..
Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv)
Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..
Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..
Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..