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 ...
随机推荐
- 网页通用的测试用例(出处:: 51Testing-- lxp1119216)
此题的考察目的:面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力 这个题目还是相当有难度的, 一般的人很难把这个题目回答好. 首先,你要了 ...
- js获取上传的文件名
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- C# 解析User-Agent工具
分享一个解析User-Agent的程序集: Neget程序集名称:UAParser Github下载地址:https://github.com/qiailu/uap-csharp 扩展程序集:UAPa ...
- 关于js闭包杂记
闭包:一个函数oneF里return了另一个函数innerF,然后在oneF外面运行了函数innerF,如果innerF里有用到在oneF里定义的变量,则此时依然可以引用到, 但是变量值不是定义函数i ...
- 常用的JavaScript正则匹配规则代码收藏,很实用
收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水平菜,老是自己写不出 ...
- php mkdir 创建多级目录实例代码
先介绍一下 mkdir() 这个函数 mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径. 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问 ...
- Python操作excel(xlrd和xlwt)
Python操作excel表格有很多支持的库,例如:xlrd.xlwt.openpyxl.win32com,下面介绍使用xlrd.xlwt和xlutils模块这三个库不需要其他的支持,在任何操作系统上 ...
- [转]100个经典C语言程序(益智类问题)
目录: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事 ...
- 浮点数比较问题(float x 与 '零值'比较)
今天在牛客网上看到一道面试题,看完之后着实吃了一惊,自己平常都没有在意,看似简单的问题,实则考验了语言的基本功. 据说这是腾讯的面试题: float x 与“零值”比较的if语句为? if (x == ...
- 真正的手机破解wifi密码,aircrack-ng,reaver,仅限mx2(BCM4330芯片)
仅限mx2(BCM4330芯片),mx可能有戏没测试(BCM4329?),mx3不行. PS:原生安卓应用,非虚拟机 reaver,不知道是啥的看这里http://tieba.baidu.com/p/ ...