我正在爲一個客戶的Windows應用程序工作。 他希望能夠輸入紙板箱的高度,寬度和長度,然後讓應用程序自動在屏幕上繪製紙板箱。 我想知道這是否可以用C#完成。 這裏是一個樣本的紙箱應該怎麼看上去都差不多:用c繪製線條/正方形#
請讓我知道你的意見,如果別人做了,在過去類似的東西。預先感謝您的幫助。
我正在爲一個客戶的Windows應用程序工作。 他希望能夠輸入紙板箱的高度,寬度和長度,然後讓應用程序自動在屏幕上繪製紙板箱。 我想知道這是否可以用C#完成。 這裏是一個樣本的紙箱應該怎麼看上去都差不多:用c繪製線條/正方形#
請讓我知道你的意見,如果別人做了,在過去類似的東西。預先感謝您的幫助。
我還沒有做過那樣的事,但在C#中絕對有可能。看起來你的盒子需要兩邊是寬*高,兩邊是長*高,襟翼都需要寬/ 2或長/ 2(長/高),以較短者爲準。您需要繪製的所有內容應位於System.Drawing
命名空間中,其中包括Rectangle
和Brush
。
當然。您需要System.Drawing命名空間中的方法,以及大多數Winform控件的CreateGraphics()方法。
基本設置是在窗體上放置一些控件,如Panel或PictureBox。當畫出框時,您將使用該控件的CreateGraphics()方法獲取表示空間的對象,屏幕上的控件的大小可以在其中繪製。然後,您將在屏幕上以適當的形狀繪製線條和/或矩形(我將爲您解開計算盒子如何分解爲連接的紙板面板的數學)。查找DrawRect的MSDN文檔以及Brush(您將用它來確定行的外觀)。
編輯:好的,我會給你數學。對於長度爲X,高度Y,深度Z的盒子,面板分解如下:
--------- ------------- --------- -------------
| Zx.5Z | Xx.5Z | Zx.5Z | Xx.5Z |
|---------+-------------+---------+-------------+
| | | | |
| ZxY | XxY | ZxY | XxY |
| | | | |
|---------+-------------+---------+-------------+
| Zx.5Z | Xx.5Z | Zx.5Z | Xx.5Z |
--------- ------------- --------- -------------
這個基本的設置是不正確的 - 你幾乎不應該調用Control.CreateGraphics,因爲你繪製的任何東西在重繪時都會被覆蓋。或者:(1)使用在事件處理程序中提供給你的'Graphics'對象(例如'Control.Paint','PrintDocument.PrintPage'),或者(2)使用'Graphics.FromImage'在位圖上繪製並將其分配爲PictureBox的圖像。 – Justin 2011-03-03 16:09:44
夥計們,謝謝你的幫助,它肯定會幫助我。 @KeithS,.5Z在您的繪圖中意味着什麼?謝謝 – Laziale 2011-03-03 16:29:54
只有一半的深度。如果箱子的「長」側的襟翼在中間會遇到一半的深度,爲了減少浪費,箱子「短」側的襟翼是相同的高度。 – KeithS 2011-03-03 16:33:02
一些代碼,在窗體上繪製一個矩形(用於用戶控件相同的作品):
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Black, 10, 10, 100, 100);
}
}
看看其他的e.Graphs.Draw *方法。結合這些使你的藝術作品!
這看起來更像一個標籤,而不是一個盒子給我。 – 2011-03-03 15:54:04
你指的是圖像的哪個部分?條形碼,還是整個桌子般的佈局?我們需要更好的規格! – Justin 2011-03-03 15:54:36
如果你把那件東西剪出來並折起來,它會形成一個盒子。 – 2011-03-03 15:56:30