‘壹’ 如何使Winform 窗体更换背景图,其他窗体也能实时更换相同背景图片。
1.如果通过按钮来切换图片的话,则需要在对应的按钮事件里切换图片
切换图片方式为
form.BackgroundImage = 命名空间.Properties.Resources.对应资源图片名;
这个form可以是当前,也可以是其他窗体
2.需要定时切换图片的话,则需要一个定时器Timer,设置它的定时触发即可。
‘贰’ 用winform做窗口时想给窗口换背景图片,就用了imagelist+button,但是得到的背景图为什么像素这么差
靠手工调成一样大小怎么行,你应该选择图片位置为填充或者拉伸才可以,默认的是平铺
‘叁’ winform 如何设置背景图片
你是说某个控件还是整个窗体的背景,若是窗体的话,在设计状态下,点右键-》属性,里面有设置backcolor的和backgroundimage的,可以直接进行设置
‘肆’ C# winform怎么判断窗体背景图片
我建议你在给背景图片设置背景的时候,比如在窗体load事件里面给背景设置图片
this.BackgroundImage=image.fromfile("第一页.jpg");
然后你给这个背景图片的Tag做一个标志,只有你能看懂的,比如你取图片文件名,在文件名前面加一个@
this.BackgroundImage.Tag="@第一页";
然后你在判断的时候Tag取出去,把@去掉,然后再判断。甚至于你直接把“第一页.jpg”存入Tag都在要求不严格的情况下都是可以的。到这里应该明白怎么做了吧
‘伍’ 请问Winform里面怎么单击按钮来改变窗体背景图片(C#)
你可以在窗体上加个ImageList控件 加上后该控件出现在窗体设计模式的下面 点一下它 然后看右边的属性 有个属性名为Images 点一下旁边的按钮 往里面加你需要的图片,可连续加图片
然后回到你的按钮事件里 例如:
int i=0;
private void button3_Click(object sender, EventArgs e)//鼠标单击按钮事件
{
if (i > 2)//图片数
i = 0;
this.BackgroundImage = imageList1.Images[i];
i++;
}
‘陆’ C# winform改变窗体大小时背景图片出现重叠怎么解决
没刷新过来吧
‘柒’ 我有两张Winform主窗体的背景图片,在运行时怎么样切换背景图片,就像换皮肤一样
C#winform中给mdi主窗体添加自定义背景图片2011-07-06 16:05修改MDI窗口的主背景是MS不推荐的,但如果你需要可以使用下面的方法:
1——
原理:
MDI窗口有一个叫MdiClient的窗口对象作为主背景窗口,要修改MDI窗口的背景就是修改该MdiClient对象的背景
2——
关键:
如何获得MdiClient对象
3——
方法:
MdiClient是作为MDI窗口的一个ChildControl的形式存在的,因此我们可以通过遍历MDI窗口的Controls对象集来获得
4——
示例:
下面的代码把MDI窗口的主背景修改为兰色(如果你有特别的处理请作相应的处理)
private System.Windows.Forms.MdiClient m_MdiClient;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
int iCnt=this.Controls.Count;
for(int i=0;i<iCnt;i++)
{
if(this.Controls[i].GetType().ToString()=="System.Windows.Forms.MdiClient")
{
this.m_MdiClient=(System.Windows.Forms.MdiClient)this.Controls[i];
break;
}
}
this.m_MdiClient.BackColor=System.Drawing.Color.Blue;
}
具体的应用中,可以参考上面的代码把背景修改为其他的颜色、用图片平铺、拉伸等,就象通过代码修改非MDI窗口的背景一样。
另外,具体应用时,可能要考虑把这些东西放置到Paint或erasebkground等事件。
c# 2.0 给MDI主窗口添加背景最简单的办法,4句代码搞定
一、将MDI主窗口的IsMdiContainer设为 False,将背景图片放到资源文件中,资源名为BackgroundImage
二、在MDI主窗口的构造函数中InitializeComponent();之后加下面4行代码
MdiClient m = new MdiClient();
this.Controls.Add( m );
m.Dock = DockStyle.Fill;
m.BackgroundImage = Properties.Resources.BackgroundImage ;
using System;
using System.ComponentModel;
using System.Collections;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
namespace myBackgroundImage
{
/// <summary>
/// fat background MDI form (fbgMDIform),可定制Mdi主窗体背景。
/// </summary>
public class fbgMDIform:System.Windows.Forms.Form
{
private MDIbg_TypeList _mdibg_type;
private Image _mdibg_image;
private Image _mdibg_bgimage;
private MDIbg_AlignList _mdibg_align;
private MDIbg_ValignList _mdibg_valign;
private System.Windows.Forms.MdiClient bgMDIClient;
#region" 公共属性 "
[Browsable(true),Description("背景图片呈现风格:File填充,以截取右上角或重复出现的方式填满整个工作区;Draw 拉伸,一张图片拉伸后布满工作区;Logo标志,一张图片,其他属性控制具体位置。"), Category("MDI背景扩展设置")]
public MDIbg_TypeList MDIbg_Type
{
get
{
object obj=_mdibg_type;
return (obj==null)?MDIbg_TypeList.File:(MDIbg_TypeList)obj;
}
set { _mdibg_type=value; }
}
[Browsable(true),Description("MDIContainer背景图片"),Category("MDI背景扩展设置")]
public Image MDIbg_Image
{
get { return _mdibg_image; }
set { _mdibg_image=value; }
}
[Browsable(true),Description("MDIContainer第二背景图片,MDIbg_Type设置为Logo时,此属性对 应图片以拉伸的形式在MDIbg_Image的下一层布满工作区,若留空则由背景色替代。"), Category("MDI背景扩展设置")]
public Image MDIbg_bgImage
{
get { return _mdibg_bgimage; }
set { _mdibg_bgimage=value; }
}
[Browsable(true),Description("MDIbg_Image的左右对齐方式,取值为Left、Center、Right,MDIbg_Type设置为Logo时有效。"), Category("MDI背景扩展设置")]
public MDIbg_AlignList MDIbg_Align
{
get
{
object obj=_mdibg_align;
return (obj==null)?MDIbg_AlignList.Left:(MDIbg_AlignList)obj;
}
set { _mdibg_align=value; }
}
[Browsable(true),Description("MDIbg_Image的上下对齐方式,取值为Top、Middle、Bottom,MDIbg_Type设置为Logo时有效。"), Category("MDI背景扩展设置")]
public MDIbg_ValignList MDIbg_Valign
{
get
{
object obj=_mdibg_valign;
return (obj==null)?MDIbg_ValignList.Top:(MDIbg_ValignList)obj;
}
set { _mdibg_valign=value; }
}
#endregion
#region" 枚举相关 "
//呈现风格枚举
public enum MDIbg_TypeList:byte
{
File, //File填充,多张图片重复后布满工作区
Draw, //Draw拉伸,一张图片拉伸后布满工作区
Logo //Logo标志,一张图片,其他属性控制具体位置
}
//图片左右对齐方式枚举
public enum MDIbg_AlignList:byte
{
Left, //居左
Center, //居中
Right //居右
}
//图片上下对齐方式枚举
public enum MDIbg_ValignList:byte
{
Top, //居上
Middle, //居中
Bottom //居下
}
#endregion
public fbgMDIform()
{
this.SizeChanged += new System.EventHandler(this.MDI_Set);
this.Load+=new EventHandler(this.MDI_Set);
}
private void MDI_Set(object sender, System.EventArgs e)
{
if(this.IsMdiContainer)
{
foreach(System.Windows.Forms.Control myControl in this.Controls)
{
if(myControl.GetType().ToString() == "System.Windows.Forms.MdiClient")
{
bgMDIClient = (System.Windows.Forms.MdiClient)myControl;
break;
}
}
if(bgMDIClient.ClientSize.Width>0&&bgMDIClient.ClientSize.Height>0&&MDIbg_Image!=null)
{
System.Drawing.Bitmap myImg = new Bitmap(bgMDIClient.ClientSize.Width,bgMDIClient.ClientSize.Height);
System.Drawing.Graphics myGraphics = System.Drawing.Graphics.FromImage(myImg);
myGraphics.Clear(this.BackColor);
switch (this.MDIbg_Type)
{
case MDIbg_TypeList.File:
//填充
myImg = new Bitmap(this.MDIbg_Image);
myGraphics = System.Drawing.Graphics.FromImage(myImg);
myGraphics.Clear(this.BackColor);
myGraphics.DrawImage(this.MDIbg_Image,0,0,myImg.Width+1,myImg.Height+1);
bgMDIClient.BackgroundImage =myImg;
myGraphics.Dispose();
break;
case MDIbg_TypeList.Draw:
//拉伸
myGraphics.DrawImage(this.MDIbg_Image,0,0,myImg.Width+1,myImg.Height+1);
bgMDIClient.BackgroundImage = myImg;
myGraphics.Dispose();
break;
case MDIbg_TypeList.Logo:
//标志
myGraphics.Clear(this.BackColor);
if(this.MDIbg_bgImage!=null)
{
myGraphics.DrawImage(this.MDIbg_bgImage,0,0,myImg.Width+1,myImg.Height+1);
}
//定位
int myX,myY;
switch(this.MDIbg_Align)
{
case MDIbg_AlignList.Left:
myX=0;
break;
case MDIbg_AlignList.Right:
myX=myImg.Width-MDIbg_Image.Width;
break;
case MDIbg_AlignList.Center:
myX=(myImg.Width-MDIbg_Image.Width)/2;
break;
default:
myX=0;
break;
}
switch(this.MDIbg_Valign)
{
case MDIbg_ValignList.Top:
myY=0;
break;
case MDIbg_ValignList.Bottom:
myY=myImg.Height -MDIbg_Image.Height;
break;
case MDIbg_ValignList.Middle:
myY=(myImg.Height -MDIbg_Image.Height)/2;
break;
default:
myY=0;
break;
}
myGraphics.DrawImage(this.MDIbg_Image,myX,myY,this.MDIbg_Image.Width,this.MDIbg_Image.Height);
bgMDIClient.BackgroundImage = myImg;
myGraphics.Dispose();
break;
default:
//填充
bgMDIClient.BackgroundImage =this.MDIbg_Image;
break;
}
}
}
}
}
}
放在类库中编译,然后在程序中引用
‘捌’ c#如何实Winform窗体背景图片化
卡是因为你每次加在控件都会重新加载背景图片,你需要设置图片缓存(直接从内存加在比从文件读取快很多),或是直接重写窗口的绘制方法,从而实现夹在控件不刷新背景。。。
‘玖’ c#winform如何更改背景图片
更改form的BackgroundImage属性。
选中要操作的form控件,在属性选项卡中找到BackgroundImage属性,点击打开选择资源对话框,将要用到的背景图片导入到本地资源或项目资源。导入成功后选中背景图片,点击确定,即可完成form的背景图片的更换。