Как установить границы фонового изображения кистью в коде позади - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть пользовательский элемент управления WPF, который используется в приложении Windows. Элемент управления имеет рамку в качестве основного элемента, и эта рамка имеет фоновое изображение по умолчанию. Код ниже показывает, как это изображение установлено по умолчанию. Изображение по умолчанию является элементом ресурса (Images / BlueRoad.jpg).

Я хочу иметь возможность программно изменять изображение фона границы, используя имя файла изображения в виде строки (например, "C: \ Pictures \ myCustomPic.bmp"). Мне нужно сделать это в коде с использованием Visual Basic, если только в XAML нет ОЧЕНЬ простого способа сделать это. В любом случае картинка будет загружена в код запуска для элемента управления.

Я немного знаю о WPF, и это всего лишь небольшой элемент приложения, поэтому хочу сделать это как можно проще и быстрее.

Большое спасибо!

<Border Name="mainBorder" Opacity="1" BorderBrush="SteelBlue" BorderThickness="3">
    <Border.Background>
        <ImageBrush  ImageSource="Images/BlueRoad.jpg"></ImageBrush>
    </Border.Background>

     Grid and other stuff goes here...

 </Border> 

Ответы [ 2 ]

0 голосов
/ 05 января 2017
using System;
using System.Windows.Media;
using System.Windows.Media.Imaging;
...
var imagePath = @"pack://application:,,,/MyProject;component/Resources/BorderImage.png";
ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(imagePath, UriKind.Absolute)));
MyBorder.Background = brush;
0 голосов
/ 09 декабря 2011

вы можете использовать ImageBrush и BitmapImage, чтобы установить кисть на граничный фон. Сначала вы создадите BitmapImage с помощью URI и отправите этот BitmapImage в ImageBrush и назначите ImageBrush на граничный фон

...