0

私はVentanaSystemがVensimソフトウェアに提供した例を使用しています。この例は、C#のデスクトップアプリケーションです。この例をC#のWebバージョンに取り入れたいと思います。

デスクトップ版

VensimDLLWrapper.vensim_show_sketch(1, 1, 100, (long)pictureBox_Sketch.Handle);

Web版

VensimDLLWrapper.vensim_show_sketch(1, 1, 100, (long)Image1.???);
4

1 に答える 1

3

これが私のアプローチです。デスクトップアプリケーションのようにPictureBoxを作成します

        PictureBox pictureBox_Sketch = new PictureBox();
        pictureBox_Sketch.Name = "pictureBox_Sketch";
        pictureBox_Sketch.Size = new System.Drawing.Size(1200, 768);
        pictureBox_Sketch.TabIndex = 19;
        pictureBox_Sketch.TabStop = false;

次に、画像をハンドルに入れます。

       VensimDLLWrapper.vensim_show_sketch(1, 1, 100, (long)pictureBox_Sketch.Handle);

次に、画像をクリップボードにコピーします。

       VensimDLLWrapper.vensim_tool_command("EXPORT>SK", (long)pictureBox_Sketch.Handle, 0);

最後に、画像をディスクに保存します(Server.Mapまたはその他を使用する必要があることは明らかです)

   if (PInvoke.OpenClipboard(pictureBox_Sketch.Handle))
        {
            if (PInvoke.IsClipboardFormatAvailable(14))
            {
                IntPtr ptr = PInvoke.GetClipboardData(14);
                if (!ptr.Equals(new IntPtr(0)))
                {
                    Metafile metafile = new Metafile(ptr, true);
                    metafile.Save("C:\\ruta\\Images\\ModelGraph.png", System.Drawing.Imaging.ImageFormat.Png);
                    //HyperLink1.NavigateUrl = "Images\\ModelGraph.png";
                    // Image1.ImageUrl = "Images\\ModelGraph.emf";

                    //Set the Image Property of PictureBox 

                }
            }
            PInvoke.CloseClipboard();
        }
于 2012-11-01T18:20:54.510 に答える