好的,所以我在这里阅读了一些问题,所有问题都有相同或类似的答案,我正在尝试从代码中将图像插入椭圆。
ImageBrush ib = new ImageBrush();
ib.ImageSource = new BitmapImage(new Uri("Art/image.png", UriKind.Relative));
Sun.Fill = ib;
使用此代码没有任何反应,我得到黑屏并丢失一些对象。
我更改了代码,删除了UriKind
,将其更改为absolute
,更改为RelativeOrAbsolute
,我尝试了@"Art\image.png"
。所有这些都加起来相同。
但是当我在XAML中做它时,它可以工作。
这个问题有解决方案吗?
答案 0 :(得分:1)
这有效:
var d = new System.Windows.Shapes.Ellipse();
ImageBrush ib = new ImageBrush();
ib.ImageSource = new System.Windows.Media.Imaging.BitmapImage(new Uri("images/error.png", UriKind.Relative));
d.Fill = ib;
this.Content = d; // assuming the parent is a Window
注意两件事:
答案 1 :(得分:1)
使图像文件成为装配资源。这比单独的内容文件更实用。
文件image.png
应位于Visual Studio项目中名为Art
的文件夹中,并且Build Action
(在文件的属性中)应该设置为Resource
。
然后您将使用Resource File Pack URI来访问该文件:
ib.ImageSource = new BitmapImage(new Uri("pack://application:,,,/Art/image.png"));