摘要: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>