C# - 让窗口随图片自动改变大小
2012-08-07 16:17
441 查看
任务
实现一个简单图片查看工具,可在窗口中显示选定的图片,并且窗口大小随图片自动改变。效果图
打开小图片:打开大图片:
关键代码
控件
图片控件PictureBox。让它显示指定的图片:pictureBox1.Image = Image.FromFile(filename);
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
选择图片文件,使用OpenFileDialog,通过Filter指定可显示哪些后缀的文件:
var dialog = new OpenFileDialog(); dialog.Filter = "图片(*.jpg/*.png/*.gif/*.bmp)|*.jpg;*.png;*.gif;*.bmp";
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
布局
设置Dock
窗口中有两个控件,一个PictureBox用于显示图片,一个Button用于选择图片。通地设置它们的Dock,可以让它们始终依靠在父容器的某一边,不论它如何改变大小。PictureBox的Dock选择Fill,如下图:
Button的Dock选择Bottom:
设完以后,窗口就变成了这样:
设置AutoSize
PictureBox的SizeMode都设为AutoSize:窗口的AutoSize设为True,AutoSizeMode设为GrowAndShrink(增大或缩小):
这样它们都会根据自己的内容,改变自己的大小了。
完整代码
大功告成,完整代码如下:using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
var dialog = new OpenFileDialog(); dialog.Filter = "图片(*.jpg/*.png/*.gif/*.bmp)|*.jpg;*.png;*.gif;*.bmp";
if (dialog.ShowDialog() == DialogResult.OK) {
var filename = dialog.FileName;
pictureBox1.Image = Image.FromFile(filename);
}
}
}
}
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
相关文章推荐
- 网页背景图片自动适应窗口大小的代码
- C# datagridview大小跟随窗口动态改变
- 浏览器窗口尺寸改变时的图片自动重新定位
- JDesktopPane改变窗体大小时背景图片自动适应窗体大小
- C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果,滤波,图像截取) 对图片的处理 : 亮度调整 抓屏 翻转 随鼠标画矩形
- C# 控件随窗口大小变化自动缩放
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- 如何使用css自动使得图片自己改变大小
- jquery实现根据浏览器窗口大小自动缩放图片的方法
- C# WinForm控件随窗体大小改变自动适应改变
- Qt5:随窗口大小变化背景图片自动缩放的实现
- Jquery让图片根据浏览器窗口大小自动缩放
- 根据浏览器窗口大小自动缩放图片
- C# ListView随窗体大小自动改变列宽
- 轮播图片如何随着窗口的大小改变而改变
- 给对话框加载图片背景,使得窗口大小改变时,控件还在
- c# winform下图片二进制存储-改变大小-显示
- C#关于控件随窗体的改变而自动调整大小并且能重新定位的一些简单介绍和控件随窗体改变自适应类
- Qt5:随窗口大小变化背景图片自动缩放的实现【转】
- C# WinForm控件随窗体大小改变自动适应改变