none
求救!如何取得BitmapImage的高和宽? RRS feed

  • 问题

  • 请各位大虾帮帮忙,不胜感激!!!

    BitmapImage bImage = new BitmapImage(new Uri("http://xxxxx/1.jpg",UriKind.Absolute));
    
    int h = bImage.PixelHeight;
    int w = BImage.PixelWidth;
    
    
    我用上面的语句生成了一个BitmapImage的实例bImage。jpg图片能正常显示出来,但是取不到bImage的高和宽。看SDK上说了,要用到BitmapImage.ImageOpened事件才能确定高和宽。
    我就被卡在这里了,不知道怎么用BitmapImage.ImageOpened来确定高和宽,各位大虾请赐教。
    2009年10月21日 12:03

答案


  • BitmapImage bImage = new BitmapImage(new Uri("http://xxxxx/1.jpg",UriKind.Absolute));
    bImage.ImageOpened+= new EventHandler<RoutedEventArgs>(bm_ImageOpened);   /*为bImage添加 ImageOpened 事件的处理程序 */ 


    /* bm_ImageOpened事件处理 */

     void bm_ImageOpened(object sender, RoutedEventArgs e)
     {
                BitmapImage bm = (BitmapImage)sender; 
                MessageBox.Show("Height="+bm.PixelHeight+",Width="+bm.PixelWidth);
     }
    • 已标记为答案 yueyao_xu 2009年10月22日 14:07
    2009年10月22日 7:29
  • 当图片加载完成之后才可以获取它的属性。也就是为什么会有ImageOpened这个事件。

    请参考Akinsc的方法。
    Facing problems, think first, then search, finally ask.
    • 已标记为答案 yueyao_xu 2009年10月22日 14:08
    2009年10月22日 10:03
    版主

全部回复


  • BitmapImage bImage = new BitmapImage(new Uri("http://xxxxx/1.jpg",UriKind.Absolute));
    bImage.ImageOpened+= new EventHandler<RoutedEventArgs>(bm_ImageOpened);   /*为bImage添加 ImageOpened 事件的处理程序 */ 


    /* bm_ImageOpened事件处理 */

     void bm_ImageOpened(object sender, RoutedEventArgs e)
     {
                BitmapImage bm = (BitmapImage)sender; 
                MessageBox.Show("Height="+bm.PixelHeight+",Width="+bm.PixelWidth);
     }
    • 已标记为答案 yueyao_xu 2009年10月22日 14:07
    2009年10月22日 7:29
  • 当图片加载完成之后才可以获取它的属性。也就是为什么会有ImageOpened这个事件。

    请参考Akinsc的方法。
    Facing problems, think first, then search, finally ask.
    • 已标记为答案 yueyao_xu 2009年10月22日 14:08
    2009年10月22日 10:03
    版主