Pensavo c'entrasse l'area di clipping e ho provato a modificarla, ma o non si tratta di quello o non ho capito bene come si modifica. Come posso modificare?
Codice: Seleziona tutto
open System.Windows.Forms
open System.Drawing
let f = new Form (TopMost = true, Text = "StickMan", BackColor = Color.Black)
f.Show()
type StickMan() =
inherit UserControl()
let rect = new Rectangle(Point(80,50), Size(50,50))
let armL = [|PointF(105.f,115.f); PointF(85.f,170.f) |]
let armR = [|PointF(105.f,115.f); PointF(125.f,170.f)|]
let legL = [|PointF(105.f,200.f); PointF(85.f,280.f)|]
let legR = [|PointF(105.f,200.f); PointF(125.f,280.f)|]
let r = new Region(Rectangle(Point(0,0),Size(700,700)))
override this.OnPaint e =
let g = e.Graphics
g.SmoothingMode <- Drawing2D.SmoothingMode.HighQuality
g.FillEllipse(Brushes.White, rect)
g.DrawLine(Pens.White, Point(105,100), Point(105,200))
g.DrawLine(Pens.White, armL.[0], armL.[1])
g.DrawLine(Pens.White, armR.[0], armR.[1])
g.DrawLine(Pens.White, legL.[0], legL.[1])
g.DrawLine(Pens.White, legR.[0], legR.[1])
let man = new StickMan()
f.Controls.Add(man)
Forse si potrebbe dire che è colpa del rettangolo di clipping: non imposti le dimensioni del controllo!
Di default dovrebbero essere tipo 100x100 e per questo viene solo disegnato quello che è contenuto in quest'area ^^
Comunque per postare codice c'è la modalità (?) codice, che tiene conto dell'indent e ha un font migliore

EDIT:
Non sono sicurissimo ma dovrebbe esserci un modo per creare un controllo con proprietà "FILL" in maniera che sia grande quanto la finestra che lo ospita
ALTROEDIT:
mi sembra un passaggio inutile assegnare lo smoothing dentro la paint. Sono abbastanza sicuro si possa assegnare alla creazione della form o del controllo

MindFlyer
Tadaah! T'ho aggiustato l'indentazione.
Ymir
... e avevo pure guardato tra gli strumenti!MindFlyer;comment-856 ha scritto:Tadaah! T'ho aggiustato l'indentazione.
Avevo dimenticato il Dock per l'appunto -.- e cercavo di fare cose diverse e inutili per sistemare l'area di clipping.baaba;comment-854 ha scritto: Non sono sicurissimo ma dovrebbe esserci un modo per creare un controllo con proprietà "FILL" in maniera che sia grande quanto la finestra che lo ospita
Codice: Seleziona tutto
let man = new StickMan(Dock=DockStyle.Fill)
