在Silverlight中如何获取图片的宽高

2016-08-20 10:33:01来源:http://nick287.blog.51cto.com/6666932/1162203作者:sonic1abc人点击


这几天又收集几个比较有用的Silverlight函数在这里共享给大家~


这次先给大家说说如何获取image的宽高~


首先我们在同步image控件的时候经常要使用一个bitmapimage对象(System.Windows.Media.Imaging;)


我们可以同步他的下载进度 当他完全下载成功后我们便可以开始获取 该图片的大小了.


还是先给大家share一下代码吧~



很显然我们要向canvas中添加一个image


<UserControlx:Class="Images_Dimensions_Silverlight.Page"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Width="400"Height="300"><Gridx:Name="LayoutRoot"Background="White"><ContentControlx:Name="MyContent"><Canvasx:Name="GameCanvas"></Canvas></ContentControl></Grid></UserControl>
接下来我们要怎么做呢?

1.创建一个image对象


2.绑定数据源


3.添加到canvas里面去


步骤下面我们来看看代码如何实现


privatevoidLoadImage(stringpath){Uriuri=newUri(path,UriKind.Relative);BitmapImagebitmapImage=newBitmapImage();bitmapImage.UriSource=uri;grass=newImage();grass.Source=bitmapImage;GameCanvas.Children.Add(grass);}

这个过程大家可能已经是在熟悉不过了,我们只需要在对他稍加修改使用bitmapimage的DownloadProgress事件


bitmapImage.DownloadProgress+=newEventHandler<DownloadProgressEventArgs>(bitmapImage_DownloadProgress);

下面我们看看我们如何处理这个事件的





voidbitmapImage_DownloadProgress(objectsender,DownloadProgressEventArgse)
{
if(e.Progress==100)
{
Dispatcher.BeginInvoke(delegate()
{
doubleheight=grass.ActualHeight;
doublewidth=grass.ActualWidth;
});
}
}

呵呵~ 又是一个简单的demo 相信对大家有所帮助 下次我会给大家说说怎么获取 Silverlight的邮件点击事件~


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台