各位好,我的需求是这样的,一个简单的Word文档里的一个表格,要求在程序中用页面的形式展现出来。
我已经做好了这样的程序,也就是能够按照用户需求自己设计定义页面内容,无非就是动态加panel,panel里加控件,动态绑定。
现在客户要求同时要word文档里那些表格的线。
请问能否在这样的窗口的最外层自由地划线段呢?应该怎么实现呢?

解决方案 »

  1.   

    顶一下,不然沉了。我想过用border但是有斜线就完蛋了
      

  2.   

    试试使用WPf的DocumentViewer控件把Word文档显示在这个控件
      

  3.   

    这是不行的。用户不是要这个,我的软件就是取代word在他们那里的用途的。而且还提供字段查询等功能。
      

  4.   

    画线?点2次鼠标然后自动生成一条直线么?最外层加个Grid或者Canvas,然后开始画线的时候鼠标点下就记录一个点,第2次点下记录终点,然后以这2个点生成一个Line添加到最外层的布局控件里。
      

  5.   

    首先自己写个类继承FrameworkElementclass LightDrawing : FrameworkElement
        {
            // Create a collection of child visual objects.
            private VisualCollection _children;
            public VisualCollection Children { get { return this._children; } }
            //DrawingVisual _dv = new DrawingVisual();
            //public DrawingVisual Drawing { get { return this._dv; } }
            public LightDrawing()
            {
                _children = new VisualCollection(this);
                //_children.Add(_dv);
            }        protected override int VisualChildrenCount
            {
                get { return _children.Count; }
            }        // Provide a required override for the GetVisualChild method.
            protected override Visual GetVisualChild(int index)
            {
                if (index < 0 || index >= _children.Count)
                {
                    throw new ArgumentOutOfRangeException();
                }            return _children[index];
            }    }
    然后 LightDrawing draw = new LightDrawing();
                
                DrawingVisual visual = new DrawingVisual();
                using (var dc = visual.RenderOpen())
                {
                    dc.DrawLine(new Pen(Brushes.Black,1),new Point(50,50),new Point(100,0));
                }
                draw.Children.Add(visual);
                this.Container.Children.Add(draw);//这个container就是你要放在页面上的容器还有就是 dc.DrawLine(new Pen(Brushes.Black,1),new Point(50,50),new Point(100,0));
    这句可以换成画其他任意path的 自己查api就行了