如何在代码隐藏中设置边框背景图像画笔

时间:2011-12-08 20:05:25

标签: .net wpf code-behind imagebrush

我有一个在Windows应用程序中使用的WPF自定义用户控件。控件具有边框作为主要元素,此边框具有默认背景图像。下面的代码显示了如何将此图像设置为默认值。默认图像是资源元素(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 :(得分:0)

您可以使用ImageBrush和BitmapImage将画笔设置为边框背景 首先用uri创建BitmapImage并将此BitmapImage发送到ImageBrush并将ImageBrush分配给边框背景

答案 1 :(得分:0)

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;