我想将图像加载到具有短路径名的WPF项目中。详情如下。
我有一个看起来像这样的WPF解决方案:
Solution 'GB" (16 projects)
ABApp
Properties
References
... ...
ImageApp
Properties
References
images
mona.jpg
App.xaml
App.xaml.cs
Window1.xaml
Window1.xaml.cs
我想查看ImageApp
项目。
App.xaml
文件如下所示:
<Application x:Class="GB.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>
</Application.Resources>
</Application>
和App.xaml.cs
只是定义了从App
派生的班级Application
。
Window1.xaml
文件构建一个UI,然后Window1.xaml.cs
构建一个绘图区域,其中将显示各种图像内容。
在C#文件中,为了加载我要显示的图像images/mona.jpg
,我最终写了这样的内容:
Image myImage;
BitmapImage myBitmapImage = new BitmapImage();
myBitmapImage.BeginInit();
myBitmapImage.UriSource =
new Uri("../../images/mona.jpg", UriKind.RelativeOrAbsolute);
myBitmapImage.EndInit();
//set image source
FormatConvertedBitmap newFormatedBitmapSource = new FormatConvertedBitmap();
newFormatedBitmapSource.BeginInit();
newFormatedBitmapSource.Source = myBitmapImage;
newFormatedBitmapSource.DestinationFormat = PixelFormats.Bgra32;
newFormatedBitmapSource.EndInit();
bmpSource = newFormatedBitmapSource;
myImage.Source = bmpSource;
BuildRenderTransform();
(我为那段代码道歉 - 这是对真实情况的一种简化,所以它可能不是完美的字母。)
我的问题是关于Uri:我必须在Uri的前面写../../
,以便执行程序(最终在ImageApp/bin/Debug
)知道它必须上升两级并且然后进入images
文件夹。有没有办法让我可以写一些像new Uri("images/mona.jpg", ...)
这样的东西?我可以告诉WPF源目录应该用作相对搜索的起始路径吗?
我承认,尽管我已经阅读了微软的帮助文章和几个StackExchange问题/答案,但整个Uri事情对我来说大都莫名其妙。
我怀疑(和模糊的记忆)通过为项目的xaml添加一些内容,我可以实现这一点,但我似乎无法做到这一点。
有什么想法吗?
答案 0 :(得分:1)
我不确定(现在无法检查),但尝试指定类似这样的内容
new Uri("/ImageApp;component/images/mona.jpg");
确保您在参考文献中有ImageApp