從另一個dll中binding image過來

  • 916
  • 0
  • 2013-07-13

摘要:從另一個dll中binding image過來

試了好久,還是試不出來,索性只好到論壇上問問了,沒想到很快就有人回答了!

趕快記下來備查。

是這樣的,若要binding另一個dll中的圖檔,則該dll的圖檔的「建置動作」要設為「Resources」才行!

否則圖是出不來的。

code在下面:

xaml:

<Window x:Class="ImageBindingApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:vm;assembly=vm"
        Title="MainWindow" Height="350" Width="525">
    <Window.DataContext>
        <vm:VMClass/>
    </Window.DataContext>
    <Grid>
        <Border BorderThickness="2" BorderBrush="Red">
            <Image Source="{Binding Img}"/>
        </Border>
    </Grid>
</Window>

在另一個 dll 中的 View-Model 的 code:

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

namespace vm
{
    public class VMClass
    {
        BitmapImage img;

        public BitmapImage Img
        {
            get { return img; }
            set { img = value; }
        }
        public VMClass()
        {
            img = new BitmapImage(new Uri("/vm;component/h.png", UriKind.RelativeOrAbsolute));
            
            
        }
    }
}