这几天又收集几个比较有用的Silverlight函数在这里共享给大家~
这次先给大家说说如何获取p_w_picpath的宽高~
首先我们在同步p_w_picpath控件的时候经常要使用一个bitmapp_w_picpath对象(System.Windows.Media.Imaging;)
我们可以同步他的下载进度 当他完全下载成功后我们便可以开始获取 该图片的大小了.
还是先给大家share一下代码吧~
很显然我们要向canvas中添加一个p_w_picpath
- <UserControl x: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">
- <Grid x:Name="LayoutRoot" Background="White">
- <ContentControl x:Name="MyContent">
- <Canvas x:Name="GameCanvas" ></Canvas>
- </ContentControl>
- </Grid>
- </UserControl>
接下来我们要怎么做呢?
1.创建一个p_w_picpath对象
2.绑定数据源
3.添加到canvas里面去
步骤下面我们来看看代码如何实现
- private void LoadImage(string path)
- {
- Uri uri = new Uri(path, UriKind.Relative);
- BitmapImage bitmapImage = new BitmapImage();
- bitmapImage.UriSource = uri;
- grass = new Image();
- grass.Source = bitmapImage;
- GameCanvas.Children.Add(grass);
- }
这个过程大家可能已经是在熟悉不过了,我们只需要在对他稍加修改使用bitmapp_w_picpath的DownloadProgress事件
bitmapImage.DownloadProgress += new EventHandler<DownloadProgressEventArgs>(bitmapImage_DownloadProgress);
下面我们看看我们如何处理这个事件的
void bitmapImage_DownloadProgress(object sender, DownloadProgressEventArgs e)
{
if (e.Progress == 100)
{
Dispatcher.BeginInvoke(delegate()
{
double height = grass.ActualHeight;
double width = grass.ActualWidth;
});
}
}
呵呵~ 又是一个简单的demo 相信对大家有所帮助 下次我会给大家说说怎么获取 Silverlight的邮件点击事件~
转载于:https://blog.51cto.com/nick287/1162203