我一直在努力争取这几个小时。我已经成功了几次,但是当我尝试复制它时,我会得到不同的结果。我所要做的就是将图像作为静态资源加载,以便稍后在同一页面上使用。
我已经尝试了Load Images in WPF application中包含的所有内容,但我没有运气。我想也许我把我的图像放在错误的地方,虽然我不知道还有什么地方可以放置它们。我创建了一个名为Images的文件夹。
<UserControl.Resources>
<BitmapImage x:Key="image1" UriSource="MyApp;component/Images/Image1.png" />
<BitmapImage x:Key="image2" UriSource="MyApp;component/Images/Image2.png" />
</UserControl.Resources>
然后我用这个
<Image Width=" 100" Height="100">
<Image.Source>
<CroppedBitmap Source="{StaticResource ResourceKey=image1}">
<CroppedBitmap.SourceRect>
<Int32Rect X="0" Y="0" Width="100" Height="100" />
</CroppedBitmap.SourceRect>
</CroppedBitmap>
</Image.Source>
最终我要做的是只显示图像的一部分,但我甚至无法在屏幕上始终获得图像,更不用说将其切割成部分了。
修改
似乎如果我删除CroppedBitmap mumbo jumbo,图像会自行加载
<Image Width=" 100" Height="100" Source ="{StaticResource image1}">
所以我的整个问题都在于裁剪。
答案 0 :(得分:2)
假设您的图像存储在目录<solution>/Images/
中并且应用程序的完整命名空间为MyApp
,那么您可以编写您的UriSource,例如
/MyApp;component/Images/Image1.png
现在,您的图片必须在文件属性中将Build Action
设置为Resource
。如下图所示。
您的URI字符串的语法是
/<full namespace>;component/<full path>/<file name with extension>
我已使用裁剪后的图片测试了您的代码,并将此结果与代码一起使用。
<强> XAML:强>
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<BitmapImage x:Key="image1" UriSource="/MyApp;component/Images/Image1.png" />
<BitmapImage x:Key="image2" UriSource="/MyApp;component/Images/se.png" />
</Window.Resources>
<Grid>
<Image Width=" 100" Height="100">
<Image.Source>
<CroppedBitmap Source="{StaticResource ResourceKey=image1}">
<CroppedBitmap.SourceRect>
<Int32Rect X="0" Y="0" Width="100" Height="100" />
</CroppedBitmap.SourceRect>
</CroppedBitmap>
</Image.Source>
</Image>
</Grid>
</Window>
项目布局
示例输出: