Nano Hash - криптовалюты, майнинг, программирование

Самый простой способ нарисовать последовательность точек в WPF из кода

Я хотел бы создать приложение WPF, которое отслеживает местоположение курсора мыши, обновляя изображение в обработчике событий MouseMove. Моя первоначальная мысль заключалась в том, чтобы создать GeometryDrawing, а затем добавить к нему пути, но я изо всех сил пытаюсь связать это в коде (хотя Xaml для GeometryDrawings кажется простым). Какой самый простой способ подключить этот материал - это просто для отладки, поэтому я не беспокоюсь об эффективности.

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
  • Спасибо ... рад, что это было то, что вы искали. 26.09.2009
  • Идеальный ! Я боролся с данными пути и геометрии 10.11.2012

  • 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). Они жизненно важны для различных приложений, таких как интеллектуальные..