可以实现的。就是用到了一些图形的旋转,缩放等功能,建议找本gdi+看看。如果效果不是要求特别高。应该没有什么难度的

解决方案 »

  1.   

    用WPF旋转/移动/缩放3D的功能是已经实现了,
    但像DeskSpace软件的功能是无法实现(不知道实现虚拟Windows桌面的原理),
    这方面有经验的高手请给与帮助吧。谢谢!!!!!!!!!!!
      

  2.   

    WPF中3D旋转是基本没有问题的。
    但是要旋转桌面就没有那么容易了。
    这个牵涉到WINDOWS SHELL。 
    不容易浓
      

  3.   

    WPF 图像处理组件 
    WPF 图像处理使得 Microsoft Windows 内的图像处理功能得到了极大改进。以前,图像处理功能(如显示位图或在常见控件上使用图像)依赖于 Microsoft Windows 图形设备接口 (GDI) 或 Microsoft Windows GDI+ 库。这些 API 提供有基本图像处理功能,但缺少诸如支持编解码器扩展性和高保真图像支持等功能。WPF 图像处理旨在克服 GDI 和 GDI+ 的缺点,并提供一组新的 API,用以在应用程序内显示和使用图像。
    有两种方式可以访问 WPF 图像处理 API:托管组件和非托管组件。非托管组件提供以下功能。
    适用于新的或专用图像格式的扩展性模型。
    对包括位图 (BMP)、联合图像专家组 (JPEG)、可移植网络图形 (PNG)、标记图像文件格式 (TIFF)、Microsoft Windows Media 照片、图形交换格式 (GIF) 和图标 (.ico) 在内的本机图像格式增强了性能和安全性。
    高位深图像数据的保留最多 32 位/通道。
    非破坏性图像缩放、裁切和旋转。
    简化的颜色管理
    支持文件内的专用元数据。
    托管组件利用非托管基础结构提供图像与其他 WPF 功能(如用户界面 (UI)、动画和图形)的无缝集成。托管组件还可以从 Windows Presentation Foundation (WPF) 图像处理编解码器扩展性模型获益,利用该模型可以实现自动识别 WPF 中的新图像格式。
    大部分托管的 WPF 图像处理 API 驻留在 System.Windows.Media.Imaging 命名空间中,不过,几个重要的类型(如 ImageBrush 和 ImageDrawing)都驻留在 System.Windows.Media 命名空间,Image 驻留在 System.Windows.Controls 命名空间。
    本主题提供有关托管组件的其他信息。
    WPF 图像格式 
    编解码器用于对特定媒体格式解码或编码。WPF 图像处理包括一个适用于 BMP、JPEG、PNG、TIFF、Windows Media 照片、GIF 和 ICON 图像格式的编解码器。利用上述每个编解码器,应用程序可以对其各自的图像格式进行解码(ICON 除外)和编码。
    BitmapSource 是一个重要的类,用于对图像进行解码和编码。它是 WPF 图像处理管线的基本构造块,表示具有特定大小和分辨率的单个不变的像素集。BitmapSource 可以是多个帧图像中的单个帧,或者可以是在 BitmapSource 上执行转换的结果。它是 WPF 图像处理中使用的许多主要类(如 BitmapFrame)的父级。
    BitmapFrame 用于存储图像格式的实际位图数据。许多图像格式仅支持单一 BitmapFrame,不过 GIF 和 TIFF 等格式的图像支持每个图像有多个帧。帧由解码器用作输入数据,并传递到编码器以创建图像文件。
    下面的示例演示如何从 BitmapSource 创建一个 BitmapFrame 并将其添加到 TIFF 图像。
     
     图像格式解码
    图像解码是指将某种图像格式转换为可以由系统使用的图像数据。然后,此图像数据可以用于显示、处理或编码为其他格式。解码器的选择是基于图像格式做出的。编解码器的选择是自动做出的,除非指定了特定的解码器。在 WPF 中显示图像小节中的示例演示了自动解码。使用非托管 WPF 图像处理界面开发并向系统注册的自定义格式解码器会自动加入到解码器选择队列。这将使得自定义格式可以自动显示在 WPF 应用程序中。
    下面的示例演示使用位图解码器对 BMP 格式的图像进行解码。
     图像格式编码
    图像编码是指将图像数据转换为特定图像格式的过程。然后,已编码的图像数据可以用于创建新图像文件。WPF 图像处理为上面介绍的每种图像格式提供编码器。
    下面的示例演示使用编码器保存一个新创建的位图图像。
      在 WPF 中显示图像 
    可以通过多种方式在 Windows Presentation Foundation (WPF) 应用程序中显示图像。可以使用 Image 控件显示图像、使用 ImageBrush 在可视图面上绘制图像或使用 ImageDrawing 绘制图像。
    使用 Image 控件
    Image 是一个框架元素,是在应用程序中显示图像的主要方式。在 XAML 中,有两种方式可以使用 Image:属性 (attribute) 语法或属性 (property) 语法。下面的示例演示如何使用属性 (attribute) 语法或属性 (property) 标记语法来呈现一个宽 200 像素的图像。
      许多示例使用 BitmapImage 对象引用图像文件。BitmapImage 是一个专用的 BitmapSource,已经优化为用于可扩展应用程序标记语言 (XAML) 加载,是一种将图像显示为 Image 控件的 Source 的简便方式。
    下面的示例演示如何使用代码呈现宽 200 像素的图像。
    说明: 
    BitmapImage 实现 ISupportInitialize 接口,以对多个属性的初始化进行优化。只能在对象初始化过程中进行属性更改。调用 BeginInit 以表示初始化开始;调用 EndInit 以表示初始化结束。初始化一旦开始之后,将忽略所做的属性更改。
      旋转、转换和裁切图像
    通过 WPF,用户可以使用 BitmapImage 的属性或使用其他 BitmapSource 对象(如 CroppedBitmap 或 FormatConvertedBitmap)来转换图像。上述图像转换可以缩放或旋转图像、更改图像的像素格式或裁切图像。
    可以使用 BitmapImage 的 Rotation 属性来执行图像旋转。旋转只能以 90 度的增量来进行。在下面的示例中,图像旋转了 90 度。
        可以使用 FormatConvertedBitmap 将图像转换为不同的像素格式,如灰度。在下面的示例中,图像转换为 Gray4。
        若要裁切图像,可以使用 Image 或 CroppedBitmap 的 Clip 属性。通常情况下,如果您只想调整图像的一部分,则应使用 Clip。如果需要编码和保存裁切过的图像,应使用 CroppedBitmap。下面的示例使用 EllipseGeometry 和 Clip 属性来裁切图像。
      
      
    拉伸图像
    Stretch 属性控制如何拉伸一个图像以使其填充容器。Stretch 属性接受以下值(是由 Stretch 枚举定义的): 
    None:不会拉伸图像以填充输出区域。如果图像比输出区域大,则图像将绘制到输出区域,而无法容纳的内容将被剪裁掉。
    Fill:会拉伸图像以适应输出区域。由于图像的高度和宽度是独立进行缩放的,因此图像的原始长宽比可能不会保留。也就是说,为了完全填充输出容器,图像可能会扭曲。
    Uniform:图像进行缩放,以便其完全适应输出区域。图像的长宽比会保留。
    UniformToFill:图像会进行缩放,以便在保留图像原始长宽比的同时完全填充输出区域。
    下面的示例将每个可用的 Stretch 枚举应用于 Image。
    下面的图像显示示例的输出,演示了不同的 Stretch 设置在应用到图像时的效果。
      

  4.   

    jinmingji 
    你好。
    你说 用WPF旋转/移动/缩放3D的功能是已经实现了,现在我们也要实现这样一个功能
    不知道你是否方便把你的代码共享一下。谢谢[email protected]
      

  5.   

    共享一下
    [email protected]
    谢谢
      

  6.   

    WPF做这个就是小菜,你看看MSDN的下载示例,有个旋转的3D明信片
      

  7.   

    WPF里面实现图片的旋转,缩放和平移时比较方便的,但是虚拟桌面之类的没接触过!
      

  8.   

    http://download.csdn.net/source/3497386
      

  9.   

    建一个全屏大的3d场景 graphic好像有截取全屏的函数 四个面全做成graphic g 那就不能全在xaml里写了 c#和xaml结合着写。。我YY的
      

  10.   

    這個可以幫助你
    http://wpf-graphics.com/Downloads.aspx
      

  11.   

    用这个3D tool 可以实现,这个是开源的dll  http://3dtools.codeplex.com/releases/view/2058