如何加载图像以在wpf页面中使用Edit->并剪辑它的一部分

时间:2014-01-22 01:03:08

标签: c# wpf

我一直在努力争取这几个小时。我已经成功了几次,但是当我尝试复制它时,我会得到不同的结果。我所要做的就是将图像作为静态资源加载,以便稍后在同一页面上使用。

我已经尝试了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}">

所以我的整个问题都在于裁剪。

1 个答案:

答案 0 :(得分:2)

假设您的图像存储在目录<solution>/Images/中并且应用程序的完整命名空间为MyApp,那么您可以编写您的UriSource,例如

/MyApp;component/Images/Image1.png

现在,您的图片必须在文件属性中将Build Action设置为Resource。如下图所示。

enter image description here

您的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>

项目布局

Project Layout

示例输出:

enter image description here