WPF Canvas, как динамически добавлять детей с кодом MVVM

Требование:

Чтобы нарисовать одно bitmap (1024 x 1024 пикселя) и прямоугольник (ы), основанный на наборе точек. Прямоугольник должен точно соответствовать местоположению пикселей над изображением. Внутри прямоугольника также должен быть добавлен текст.

Изображение будет всегда только одним, а прямоугольники будут динамически добавляться.

Текущее решение:

Возьмите canvas с помощью Image Control. Добавьте динамический код под кодом за файлом ViewImageResult.xaml.cs.

private void DrawResult(int left, int right, int width, int height) { Border bord = new Border(); bord.BorderThickness = new Thickness(1); bord.BorderBrush = Brushes.Red; bord.Width = width; bord.Height = height; _mainCanvas.Children.Add(bord); Canvas.SetLeft(bord, left); Canvas.SetTop(bord, right); } 

Выпуск:

Поскольку я следую за шаблоном MVVM, коллекция точек для прямоугольника находится в файле ViewModel ViewImageResultModel.cs. Я не могу добавить дочерний прямоугольник динамически из файла ViewModel.

Буду признателен за любую оказанную помощь.

заранее спасибо

ItemsControl – ваш друг:

                   

Вышеприведенное предполагает, что ваша виртуальная машина предоставляет набор точек через свойство Points и что каждая точка VM имеет свойства X , Y , Width и Height .

Добавлен IsItemsHost="True" к Canvas решения Kent:

                   
  • Быстрое добавление компонента в контекст веб-приложения Spring Web
  • Использование JFreeChart для отображения последних изменений во временном ряду
  • Как работать с динамическими многомерными массивами в C?
  • найти vs find_by vs где
  • Автоматически создавать Enum на основе значений в таблице поиска базы данных?
  • Давайте будем гением компьютера.