Image控件的简单使用示例1
Image控件加载图片包括加载动态图片,加载静态图片两种方式。
一。加载动态图片通过生成一个BitmapImage,创建该对象后,赋给Image的Source即可。加载的形式:
示例1
BitmapImage myBitmapImage =new BitmapImage();
myBitmapImage.BeginInit();
//取得数据库存储的图片字段,MS-SQL的Image类型
Byte[] mybyte = ReadImage();
myBitmapImage.StreamSource =new MemoryStream(mybyte);
myBitmapImage.EndInit();
myImage.Width = myBitmapImage.Width/;
myImage.Height = myBitmapImage.Height/;
myImage.Source = myBitmapImage;
示例2
//加载动态图片
BitmapImage img = new BitmapImage();
img.BeginInit();
Uri imgUri = new Uri(@"K:\Picture\jpg\1.jpg",UriKind.Absolute);
img.UriSource = imgUri;
img.EndInit(); imageOne.Width = img.Width / ;
imageOne.Height = img.Height / ;
imageOne.Source = img;
二.加载系统目录中已经存在的图片,
可以采用WPF中的pack://application:,,,格式来加载,比 如在系统的Resource目录下的图片,我们可以这样定义
ImgDev.Source = new BitmapImage(new Uri(pack://application:,,,/Resources/aa.jpg));
示例1:
void ImageThree_Loaded(object sender, RoutedEventArgs e)
{
imgOne.Source = new BitmapImage(new Uri(@"K:\Picture\jpg\1.jpg",UriKind.Absolute));
}
前台设置:
<Image Name="imgOne" Opacity="0.5"
HorizontalAlignment="Left"
Height="208" Margin="24,22,0,0"
VerticalAlignment="Top" Width="404"
ScrollViewer.CanContentScroll="True"
/>
显示结果:
三。可拖动图片显示
后台代码:
public ImageFourth()
{
InitializeComponent();
canvasOne.MouseMove += ImageFourth_MouseMove;
}
//获取文件夹下的图片
int count = ;
string path = @"K:\Picture\jpg";
bool IsMouseDown = false;
Size spanDown = Size.Empty;
object mouseDownControl = null;
private void Button_Click(object sender, RoutedEventArgs e)
{
if (Directory.Exists(path))
{
string[] files = Directory.GetFiles(path);
foreach (string filename in files)
{
count++;
Image img = new Image();
img.Source = new BitmapImage(new Uri(filename, UriKind.Absolute));
img.Width = ;
img.Height = ;
img.Margin = new Thickness();
img.Stretch = Stretch.Fill;
Canvas.SetLeft(img, count * );
Canvas.SetTop(img, count * ); img.MouseDown += img_MouseDown;
img.MouseUp += img_MouseUp;
canvasOne.Children.Add(img);
}
}
}
//鼠标移动
void ImageFourth_MouseMove(object sender, MouseEventArgs e)
{
if (IsMouseDown)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
Point movePoint = e.GetPosition(canvasOne); Image downControl = (Image)mouseDownControl;
Canvas.SetLeft(downControl, movePoint.X - spanDown.Width);
Canvas.SetTop(downControl, movePoint.Y - spanDown.Height);
}
}
}
//窗体鼠标松开
void img_MouseUp(object sender, MouseButtonEventArgs e)
{
if (IsMouseDown)
{
IsMouseDown = false;
}
}
//窗体鼠标按下事件
void img_MouseDown(object sender, MouseButtonEventArgs e)
{
Image downControl = (Image)sender;
if (downControl != null)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
Point mouseDownPoint = e.GetPosition(canvasOne); spanDown = new Size();
spanDown.Width = mouseDownPoint.X - Canvas.GetLeft(downControl);
spanDown.Height = mouseDownPoint.Y - Canvas.GetTop(downControl); IsMouseDown = true;
mouseDownControl = sender;
}
}
}
前台设置:
<ScrollViewer Name="scrllOne" Grid.Row="1"
>
<Canvas Name="canvasOne" Margin="10"
Background="LightPink"
>
<!--使用Cavas滚动条没有出现作用-->
<!--<Ellipse Width="600" Height="500" Stroke="DeepSkyBlue" StrokeThickness="2"></Ellipse>-->
</Canvas>
<!--使用环绕面板可以出现滚动条-->
<!-- <WrapPanel Name="wrapOne">
<Ellipse Width="600" Height="500" Stroke="DeepSkyBlue" StrokeThickness="2"></Ellipse>
</WrapPanel>-->
</ScrollViewer>
显示结果:
Image控件的简单使用示例1的更多相关文章
- WebBrowser控件的简单应用2
原文:WebBrowser控件的简单应用2 第一个简单应用里面讲述的是如何模拟调用当前网页的元素的事件或者赋值/取值.这次的应用讲述的是1:如何处理弹出新页面的事件(总是在我的浏览器里面现实新页面)2 ...
- vs2005中的WebBrowser控件的简单应用
原文:vs2005中的WebBrowser控件的简单应用 这个控件被封装了一下,和以前的调用方式稍有不同.事件还是那几个,变化不大.方法变了不少.从网上能查到的资料不多,贴出一些代码来作参考.看看这段 ...
- 安卓Design包之TabLayout控件的简单使用
Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个supp ...
- IOS自定义日历控件的简单实现(附思想及过程)
因为程序要求要插入一个日历控件,该空间的要求是从当天开始及以后的六个月内的日历,上网查资料基本上都说只要获取两个条件(当月第一天周几和本月一共有多少天)就可以实现一个简单的日历,剩下的靠自己的简单逻辑 ...
- Android PullToRefresh下拉刷新控件的简单使用
PullToRefresh这个开源库早就听说了,不过一直没用过.作为一个经典的的开源库,我觉得还是有必要认识一下. 打开github上的网址:https://github.com/chrisbanes ...
- js jsp 时间 日期 控件 插件 简单 实用
js时间控件一般都是找网上的用,这东西平常很少涉及到,一用到找起来却烦死人,不是没用就是太复杂,今天向大家推荐一个简单实用的控件,该控件在不断更新,而且有专门的网站对它进行维护,所以值得一看. 先说它 ...
- iOS 搜索框控件 最简单的dome
刚学习搜索框控件,写了个最简单的dome #import <UIKit/UIKit.h> .h @interface ViewController : UIViewController&l ...
- wxPython中按钮、文本控件的简单运用
本节学习图形用户界面 ------------------------ 本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口.这里介绍wxPython : 下载地 ...
- SkylineGlobe TerraExplorer Pro 7.0 Web 控件版 第一行示例代码
SkylineGlobe TerraExplorer Pro 7.0 是原生的64位应用程序,在Web端用插件方式开发的第一行示例代码如下: 常规代码,需要IE64位: <!DOCTYPE ht ...
随机推荐
- Thinkphp 数据的修改及删除操作
一.数据修改操作 save() 实现数据修改,返回受影响的记录条数 具体有两种方式实现数据修改,与添加类似(数组.AR方式) 1.数组方式: a) $goods = D(“Goods ...
- php与http协议
1.预定义变量$_SERVER $_SERVER 是一个包含了诸如头信息(header).路径(path).以及脚本位置(script locations)等等信息的数组. 可以再后台输出 f ...
- 文本阴影:text-shadow
例如: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- MFC的杂七杂八
1.判断焦点当前所在控件 2.动态移动控件位置 3.GDI+绘制文字 4.编辑框跳变显示 5.最大化显示 6.Uint uFormat常用值 7.获取菜单个数 8.添加气泡提示 9.编辑框输入时响应函 ...
- 强大疯狂的qttools
就是有点疑惑,为什么不整合到QT主项目中呢? 有空好好看看: https://github.com/qtproject/qttools/tree/dev/src ------------------- ...
- 用VBA读取Excel表格输出到格式化的xml文件中
最近需要做一个一劳永逸的XML文档生成,给项目内部专用的,直接VBA方便了,才第一次用.现学现卖了....抽时间还是系统的学习下这方面的知识吧 输出到UTF-8编码的XML文档.并且换行符是Unix的 ...
- std::vector的分片拷贝和插入
一般我们在用Qt的QByteArrary或者List的时候,会有相应的append的方法,该函数,就是把数据加入末尾.但是std::vector就没有相应的方法.但是我们可以用insert方法来实现: ...
- HDOJ 1330 Deck(叠木块-物理题啊!贪心算法用到了一点)
Problem Description A single playing card can be placed on a table, carefully, so that the short edg ...
- Android ListView特别属性用法
由于这两天在做listView的东西,所以整理出来一些比较特别(不常用)的属性,通过设置这样的属性可以做出更加美观的列表 1.stackFromBottom属性,这只该属性之后你做好的列表就会显示你列 ...
- HDU_2015——偶数求和
Problem Description 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值 ...