윈폼 : BMP 방식: 점+점
WPF : 벡터 방식: 점+점 = 선
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Start
{
public partial class ScrollBar : Form
{
private Label lb;
public ScrollBar()
{
InitializeComponent();
lb = new Label();
}
private void button1_Click(object
sender, EventArgs e)
{
label1.Text = vScrollBar1.Value.ToString();
label2.Text = hScrollBar1.Value.ToString();
}
private void vScrollBar1_Scroll(object
sender, ScrollEventArgs e)
{
label1.Text = vScrollBar1.Value.ToString();
}
private void hScrollBar1_Scroll(object
sender, ScrollEventArgs e)
{
label2.Text = hScrollBar1.Value.ToString();
}
private void ScrollBar_Load(object
sender, EventArgs e)
{
lb.AutoSize = true;
for (int i = 0; i < 100; i++)
{
lb.Text += "안녕하세요" + i.ToString() + "\r\n";
}
panel1.Controls.Add(lb);
//라벨의 높이에 따라 스크롤바의 최대값 설정
vScrollBar2.Maximum = lb.Height;
}
private void vScrollBar2_Scroll(object
sender, ScrollEventArgs e)
{
//스크롤바를 내리면..
//라벨은? 올라간다? 내려간다?
//Location.Y값을 감소 = 스크롤바의 수치
//this.Text =
vScrollBar2.Value.ToString();
this.lb.Location
= new Point(0,
-vScrollBar2.Value);
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Start
{
public partial class TrackBar : Form
{
public TrackBar()
{
InitializeComponent();
}
private void trackBar1_Scroll(object
sender, EventArgs e)
{
//0~10
this.Text =
trackBar1.Value.ToString();
//불투명도(0~1)
this.Opacity =
trackBar1.Value * 0.1;
ChangColor();
}
private void hScrollBar2_Scroll(object
sender, ScrollEventArgs e)
{
ChangColor();
}
private void ChangColor()
{
this.BackColor = Color.FromArgb(hScrollBar1.Value, hScrollBar2.Value,
hScrollBar3.Value);
}
private void hScrollBar3_Scroll(object
sender, ScrollEventArgs e)
{
ChangColor();
}
private void TrackBar_Load(object
sender, EventArgs e)
{
//폼로드
this.BackColor = Color.White;
//스크롤바 초기화 기본적으로 (0~100)
hScrollBar1.Maximum = 255;
hScrollBar2.Maximum = 255;
hScrollBar3.Maximum = 255;
hScrollBar1.Value = 255;
hScrollBar2.Value = 255;
hScrollBar3.Value = 255;
//트랙바 초기화(0~10)
trackBar1.Minimum = 1;//완전히 사라지지 않게
trackBar1.Value = 10;
}
}
}
외부이미지 추가 방법 : 현재 실행파일(exe)과 동일한 위치에 images폴더가 존재하고, 그 안에 이미지파일이 있음
*실행파일의 위치를 알아내기
MessageBox.Show(Application.StartupPath);
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Start
{
public partial class PicutreBox : Form
{
public PicutreBox()
{
InitializeComponent();
}
private void PicutreBox_Load(object
sender, EventArgs e)
{
//동적으로 이미지 파일을 가져올때
MessageBox.Show(Application.StartupPath);
string path = Application.StartupPath + @"\img\back.png";
MessageBox.Show(path);
//Bitmap = *.bmp ?
//Bitmap : 비트맵 방식의 방식(래스터 이미지). 하나의 색상을 가지는 픽셀들이 모여서 이미지를 구성하는 방식
//bmp, gif, jpg,
tiff..) 해상도가 달라지면 픽셀의 크기가 달라지기
떄문에 이미지 품질이 깨진다.
//벡터 방식 : 플래시. 일러스트레이터. 좌표에 관련된 수식을 기록. 해상도에 따른 품질의 변화가 없음. 아이콘, 일러 스트. 수식을 기록. 해상도에 따른 품질의 변화가 없음. 아이콘, 일러스트. 세밀한 표시는 불가능
Bitmap img = new Bitmap(path);
//이미지 추상클래스가 하위 객체 비트맵을 사용하지 않아도 이미지 객체를 만들수 있다.
//Image img =
Image.FromFile(path);
pictureBox1.Image = img;
}
}
}