c# – Silverlight Programmatical Drawing(从Windows Forms转换
发布时间:2020-12-15 17:18:43 所属栏目:百科 来源:网络整理
导读:我有一个世界(一个PictureBox和一个大小(行*列)的位图和从 Windows窗体中的位图创建图形)以下是代码, bmp = new Bitmap(columns*32,rows*32); graphics = Graphics.FromImage(bmp); pictureBox1.Size = new Size(columns * 32,rows * 32); pictureBox1.Image
我有一个世界(一个PictureBox和一个大小(行*列)的位图和从
Windows窗体中的位图创建图形)以下是代码,
bmp = new Bitmap(columns*32,rows*32); graphics = Graphics.FromImage(bmp); pictureBox1.Size = new Size(columns * 32,rows * 32); pictureBox1.Image = bmp; 这我用来填充Windows窗体中的图形, private void drawImageInBox(Image src,int boxX,int boxY,int Offset = 0) { graphics.DrawImage(src,new Point((boxY * 32) + Offset,(boxX * 32) + Offset)); } 当所有操作完成后我只刷新PictureBox, pictureBox1.Refresh(); 我如何在Silverlight xaml中实现这一目标? 解决方法
你会想要这样的东西:
在你的XAML中: <Grid x:Name="world_grid" Width="100" Height="100"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <!--Repeat this for however many rows you need --> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <!--Same here,for columns--> </Grid.ColumnDefinitions> </Grid> 在你的代码隐藏中: for each image you need to add: Image img = new Image(); img.Source = new Uri("some/dir/img.png"); // coding in-place,can't remember syntax world_grid.Children.Add(img); Grid.SetRow(img,0); // places this image in row 0 Grid.SetColumn(img,5); // places this image in column 5 一个非常重要的注意事项:每次“刷新”您的“世界”时,请确保在重新添加之前删除相应的图像!更好的是,您可以在某些数组中跟踪这些图像,并更改其行/列.如果需要,可以将图像的可见性设置为隐藏/折叠. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |