c#,怎样将窗体分成几部分,然后加载不同的图片

问题描述

我现在再做一个项目,有个要求是要将窗体做成有3d效果的房间;所以我打算将窗体分成几部分,然后加载不同的图片(如墙,地板,分别用不同的图片),拼凑起来,实现3d的效果;不知道怎么怎样将窗体分成几部分,然后加载不同的图片。请大家指教

解决方案

解决方案二:
建议用flash来做js的话要看图形规不规则不规则的话可能要用点阵可以参考那些js游戏
解决方案三:
重载OnPaint函数中自己画就行了,需要你自己根据窗体客户区计算每个图片的位置和大小也可以重载话窗体背景的函数去画图片,画图不难,查下MSDN很快就能搞定。
解决方案四:
呵呵,但是我的图片不规则,计算位置因为很困难吧,还有我画出来以后,需要随时修改,可以实现吗?
解决方案五:
我用的是c#哈
解决方案六:
图片不规则??有非矩形的图片么?(只有那种支持透明色的图片)思路是:例如,窗体有上、左、右三张图片ImageimgLeft;ImageimgTop;ImageimgRight;代码给你参考下publicpartialclassForm2:Form{privateImageimgLeft;privateImageimgTop;privateImageimgRight;publicForm2(){InitializeComponent();imgLeft=Image.FromFile("");imgTop=Image.FromFile("");imgRight=Image.FromFile("");}privatevoidDrawImage(Graphicsg){Rectanglerect=newRectangle();//这里计算imgLeft的rectg.DrawImage(imgLeft,rect);//这里计算imgTop的rectg.DrawImage(imgTop,rect);//这里计算imgRight的rectg.DrawImage(imgRight,rect);}protectedoverridevoidOnPaint(PaintEventArgse){base.OnPaint(e);DrawImage(e.Graphics);}privatevoidbutton1_Click(objectsender,EventArgse){//操作imgLeft、imgTop、imgRight改变图像Invalidate();//强制重绘(可以传一个Rectangle区域,告诉它只重绘改变区域,提高效率)//这样背景图就马上变量}}

解决方案七:
我其实是想将一个窗体分割成房间顶,房间低,四面墙,然后对这几部分区域填充不同的颜色或者图片,就会形成3D效果。我需要的不是规则的矩形哈,其实是一个五边形,谢谢楼上的,给我提供了一种思路。我的做法:我重载了protectedoverridevoidOnPaint(PaintEventArgse){base.OnPaint(e);AddPathExample(e);}privatevoidAddPathExample(PaintEventArgse){PenmyPen=newPen(Color.Black,2);//Createthefirstpathrightsideuptriangle.Point[]myArray={newPoint(00,00),newPoint(200,200),newPoint(400,200),newPoint(600,00),newPoint(00,00),};GraphicsPathmyPath=newGraphicsPath();myPath.AddLines(myArray);PictureBoxmypic=newPictureBox();mypic.BackColor=Color.FromArgb(123,0,234);mypic.Region=newRegion(myPath);//this.Controls.Add(mypic);e.Graphics.DrawPath(myPen,myPath);//Createthesecondpathinvertedtriangle.Point[]myArray2={newPoint(600,00),newPoint(400,200),newPoint(400,400),newPoint(600,600),newPoint(600,00),};GraphicsPathmyPath2=newGraphicsPath();myPath2.AddLines(myArray2);PictureBoxmypic1=newPictureBox();mypic1.BackColor=Color.FromArgb(23,0,24);mypic1.Region=newRegion(myPath2);this.Controls.Add(mypic1);//myPath.FillMode=FillMode.e.Graphics.DrawPath(myPen,myPath2);Point[]myArray3={newPoint(0,600),newPoint(200,400),newPoint(400,400),newPoint(600,600),newPoint(0,600),};GraphicsPathmyPath3=newGraphicsPath();myPath3.AddLines(myArray3);e.Graphics.DrawPath(myPen,myPath3)Point[]myArray4={newPoint(0,600),newPoint(200,400),newPoint(200,200),newPoint(00,00),newPoint(0,600),};GraphicsPathmyPath4=newGraphicsPath();myPath3.AddLines(myArray4);e.Graphics.DrawPath(myPen,myPath4);Point[]myArray5={newPoint(200,200),newPoint(400,200),newPoint(400,400),newPoint(200,400),newPoint(200,200),};GraphicsPathmyPath5=newGraphicsPath();myPath5.AddLines(myArray5);e.Graphics.DrawPath(myPen,myPath5);//Addthesecondpathtothefirstpath.myPath.AddPath(myPath2,true);//Drawthecombinedpathtothescreen.e.Graphics.DrawPath(myPen,myPath);}然后用GraphicsPath得到一个特定区域,用线画出了特定区域,但是还不能加载图片。本来打算用PictureBox将得到的myPath赋给mypic.Region,但是发现好像画出的picturebox大小不对,变得很小。我打算用楼上提供的方法实施哈。
解决方案八:
上面的代码已经将窗体分成了5个区域myPathmyPath1myPath2myPath3myPath4,那位再给我点建议,怎样在这些去区域加载图片呢
解决方案九:
画图方面俺还是空白,帮你顶一个吧
解决方案十:
你可以用第三方控件做啊,比如 DotNetBar
解决方案十一:
DotNetBar是什么东西啊?没用过,那位知道的,说说,请结合我的要求
解决方案十二:
看你的需求,使用WindowsForms来做肯定是十分困难的。建议用WPF来做界面,使用VisualStudio2008.WPF做3D效果要好一些,但是执行效率仍然不够高。有条件的话,用DirectX或者OpenGL来做是最可靠的。不过任何做法,都复杂的可以写一本书了。
解决方案十三:
直接做一个3D效果的图片放在Form中不是简单,你图片都有了,拼起来就是一个3D效果了!
解决方案十四:
画图的过程中不要用窗体,比如说PictureBox。窗体是一种有父窗体,有边缘大小,能够响应鼠标事件的东西。
解决方案十五:
up
解决方案:
up
解决方案:
up`````````````````

时间: 2024-12-03 23:10:30

c#,怎样将窗体分成几部分,然后加载不同的图片的相关文章

朋友圈 评论-类似朋友圈里的评论下拉加载点击图片放大

问题描述 类似朋友圈里的评论下拉加载点击图片放大 类似朋友圈里的评论 下拉加载 点击图片放大的功能实现思路或者有没有第三方提供的框架什么的,哪位大神指点下

windows编程 在一个窗口上加载一个位图图片

问题描述 windows编程 在一个窗口上加载一个位图图片 希望前辈们能给个demo程序.或者最基本的窗口上加载一个位图图片就好,加载位图时用的LoadImage 初学windows编程,不太懂上下文设备,希望大神能给个例程,让我学习. 解决方案 c++windows编程加载图片 解决方案二: #include #include "resource.h" LRESULT CALLBACK WndProc1(HWND hwnd,UINT message,WPARAM wParam,LPA

VC下加载多种格式图片的方法总结IPicture, CxImage, CImage(AtlImage), CPictureEx

尽管VC有提供相应的API和类来操作bmp位图.图标和(增强)元文件,但却不支持jpg.gif和png等格式的图片,而这几种格式却是常常要用到的.这里我给大家介绍两种办法来操作这些格式的图片. 1.用API OleLoadPicture来加载JPG.GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以通过这个COM接口来操作图片(实际上你也可以用API OleCrea

Android加载大分辨率图片到手机内存中的实例方法_Android

还原堆内存溢出的错误首先来还原一下堆内存溢出的错误.首先在SD卡上放一张照片,分辨率为(3776 X 2520),大小为3.88MB,是我自己用相机拍的一张照片.应用的布局很简单,一个Button一个ImageView,然后按照常规的方式,使用BitmapFactory加载一张照片并使用一个ImageView展示. 代码如下: 复制代码 代码如下: btn_loadimage.setOnClickListener(new View.OnClickListener() {            

ceditview-求助!MFC 单文档多视图 CEditView加载的背景图片被挡住的问题

问题描述 求助!MFC 单文档多视图 CEditView加载的背景图片被挡住的问题 貌似是加载的背景图片被输入的那一行的背景覆盖了.. 如图,其中圈起来的就是CEditView,视图底部还能看见背景图片的一部分,但光标所在的那一行就没有图片的显示了,而且我如果按了回车换行,下面一行也会被覆盖..以下代码. 视图类中相关变量: CEdit* m_pCtrlREdit;// 内嵌的CEditCtrl控件指针 CImage m_ImageLogo; // 图片 UINT widthPic height

为什么加载不了图片?

问题描述 为什么加载不了图片? 数据库已创建好,根据卡号获取姓名,再根据姓名查找显示图片... void CbitMapDlg::OnLoadBitMap() { // TODO: 在此添加控件通知处理程序代码 CppSQLite3DB db; db.open(L"meninfo.db"); CppSQLite3Query query = db.execQuery(L"select * from meninfo where cardNO = 123;"); LPCT

tomcat集群-nginx 反向代理三个本地tomcat 负载均衡配置 无法加载js css 图片等 也不报错

问题描述 nginx 反向代理三个本地tomcat 负载均衡配置 无法加载js css 图片等 也不报错 打开速度非常慢,到最后js css无法加载是什么问题 我的项目是ssh+jquery+easyui的 单独访问tomcat完全正常 访问nginx就这样了 .求大神指点啊 访问webapp根目录是可以的 我的页面都是在web-inf目录下的貌似不行 nginx配置如下: #user nobody; worker_processes 1; #error_log logs/error.log;

android关于加载 2049*1376 图片问题

问题描述 android关于加载 2049*1376 图片问题 <?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@

android imageview加载网络图片无图片

问题描述 android imageview加载网络图片无图片 MainActivity.java package study_imageput.com.study_apktointent; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.widget.ImageV