Image Binding 2

  • 1141
  • 0
  • 2013-07-04

摘要:Image Binding 2

繼上一篇 Image Binding 後,發現原來還有更簡單的,連Converter都不需要了,只要公開一個BitmapImage給Image當Source作Binding即可。

(h.png已加入專案)

以下是程式碼:

c#:(vm.cs)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media.Imaging;

namespace ImageBindingDemo2
{
    public class vm
    {
        BitmapImage img;

        public BitmapImage Img
        {
            get { return img; }
            set { img = value; }
        }

        public vm()
        {
            //Uri("pack://application:,,,/h.png", UriKind.RelativeOrAbsolute)
            //等於 Uri("h.png", UriKind.RelativeOrAbsolute)
            //因為 pack://application:,,,/ 代表專案檔所在目錄,vm.cs 和 h.png 也都在這個目錄,
            //而簡寫(只寫檔案名稱)是相對於目前檔案的位置
            //所以可以用簡寫 h.png 來指定圖檔的位置
            img = new BitmapImage(new Uri("h.png", UriKind.RelativeOrAbsolute));
            //img = new BitmapImage(new Uri("h.png", UriKind.RelativeOrAbsolute));//這樣寫也可以
            //img = new BitmapImage(new Uri("pack://application:,,,/h.png", UriKind.RelativeOrAbsolute));//這樣寫也行
        }
    }
}

xaml:


<Window x:Class="ImageBindingDemo2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:ImageBindingDemo2"
        Title="MainWindow" Height="350" Width="525">
    <Window.DataContext>
        <vm:vm/>
    </Window.DataContext>
    <Grid>
        <Image Source="{Binding Img}"/>
    </Grid>
</Window>