WPF Toile, comment ajouter des enfants de façon dynamique avec MVVM code derrière
Exigence:
De dessiner une Image Bitmap (de 1024 x 1024 pixels) et le rectangle(s) basé sur la collecte de points. Le rectangle doit correspondre exactement sur les pixels de l'emplacement sur l'image. Il y a aussi un texte doivent être ajoutés à l'intérieur du rectangle.
L'Image sera toujours un seul et rectangles seront ajoutées dynamiquement.
Solution Actuelle:
Ont une toile avec Contrôle de l'Image. Ajouter la dynamique de code dans le fichier code-behind 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);
}
Question:
Depuis j'ai suivi le pattern MVVM, la collecte des points du rectangle est dans mon ViewModel fichier ViewImageResultModel.cs. Je ne suis pas en mesure d'ajouter de l'enfant rectangle de façon dynamique à partir de ce Dernier fichier.
Toute aide est très appréciée.
Merci d'avance
Vous devez vous connecter pour publier un commentaire.
ItemsControl
est votre ami:Ci-dessus suppose que votre VM expose une collection de points via un
Points
bien, et que chaque point de VM aX
,Y
,Width
, etHeight
propriétés.Ajouté
IsItemsHost="True"
à laCanvas
de Kent solution: