日期:2014-05-20  浏览次数:21255 次

100分求WPF中MVVM实现office幻灯片中画矩形的功能
本帖最后由 yangchun1213 于 2012-09-20 22:11:57 编辑
因为公司网站不知道哪个脑残想的,连csdn都上不了,所以很久没来csdn了,怀念呀,真心怀念。

言归正传,如题,要求如下:
1. WPF中用MVVM开发模式实现高效的在Canvas里面画矩形的功能
2. 这些矩形只有边框,其实就是选区功能,可以对矩形进行拖动,删除,修改
3. 可以全选,全选后可以一起移动,一起删除
4. 移动时,类似office2007或以上版本中的Power Point里移动矩形一样,选中矩形移动时,鼠标没有放开时,会有相同的矩形跟随鼠标移动,原矩形还是在原地方,松开鼠标后,原矩形消失,如图:

5. 每话一个矩形都会在右侧的选择和可见性窗口显示相应矩形的属性,如图所示::

6. 右下角,可以对Canvas进行放大缩小,要的是圆形按钮


求大神指点,顺便练练笔吧
------解决方案--------------------
1、

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows;
using System.Globalization;

namespace CustomPaint
{
    class MyCanvas : Canvas
    {
        protected override void OnRender(DrawingContext dc)
        {
            base.OnRender(dc);

            dc.DrawRectangle(Brushes.LightBlue, new Pen(Brushes.Red, 1), 
                new Rect(new Point(10, 10), new Size(100, 50)));

            dc.DrawText(new FormattedText("my canvas", CultureInfo.CurrentCulture, 
                FlowDirection.LeftToRight, new Typeface("Tahoma"), 20, Brushes.Green),
                new Point(50,25));
        }
    }
}


------解决方案--------------------
http://www.codeproject.com/KB/WPF/WPFDiagramDesigner_Part1.aspx