Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > как внедрить image в SilverlightClassLibrary


Автор: SeregaS 24.9.2009, 11:36
создаю SilverlightClassLibrary 
кидаю туда изображение
для примера делаю класс наследник кнопки
и пробую добавить к нему изображение
Код

  public class myButton:Button
    {
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            Image image = new Image();
            Uri uri = new Uri("Images/clock.png", UriKind.Relative);
            ImageSource img = new System.Windows.Media.Imaging.BitmapImage(uri);
            image.SetValue(Image.SourceProperty, img);
            this.Content = image;
        }
    }


далее если у в проекте в котором сама отображаемая страница будет директория <Images/clock.png>
все в порядке изображение на кнопке появится
если же нет то изображения не будет 
подскажите как внедрить изображение именно в библиотеку

Автор: Любитель 24.9.2009, 19:36
Добавляешь картинку в твой проект, ставишь тип сборки в "Embedded Resource", затем используешь урл вида: Assembly;component/сlock.png, где Assembly - имя сборки, установленное для проекта (по дефолт  совпадает с именем проекта).

Автор: SeregaS 25.9.2009, 09:50
 пробовал по разному и просто под wpf и под silverLight не получается ни как 
если не тяжело поправьте код в прилагаемом файле 

Код

public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            Image image = new Image();
            //Uri uri = new Uri("myButton;component/clock.png");pack://application:,,,/
            Uri uri = new Uri("pack://application:,,,/myButton;component/clock.png");
            ImageSource img = new System.Windows.Media.Imaging.BitmapImage(uri);
            image.SetValue(Image.SourceProperty, img);
            this.Content = image;
            this.Width = 100;
            this.Height = 30;
        }

Автор: SeregaS 30.9.2009, 12:08
вот такая строка должна быть 
но сама картинка должна быть внедрена с типом "Resource" 
а не "Embedded Resource" и тогда  smile  smile  smile 

Код

_img.Source = new BitmapImage(new Uri("pack://application:,,,/Dll_Images;component/rss_add.png"));

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)