Control.CreateGraphics Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Graphics Vytvoří ovládací prvek.
public:
System::Drawing::Graphics ^ CreateGraphics();
public System.Drawing.Graphics CreateGraphics ();
member this.CreateGraphics : unit -> System.Drawing.Graphics
Public Function CreateGraphics () As Graphics
Návraty
Ovládací Graphics prvek.
Příklady
Následující příklad kódu změní velikost zadaného ovládacího prvku tak, aby ovládací prvek vyhovoval jeho formátovanému textu. Formátovaný text je Text vlastnost s přiřazeným Font ovládacím prvku použitým pro text. Metoda AutoSizeControl
v tomto příkladu textPadding
má také parametr, který představuje odsazení, které se použije na všechny okraje ovládacího prvku. Pokud chcete, aby se odsazení zobrazilo stejně, zarovnejte text s MiddleCenter
hodnotou, jestli ho System.Drawing.ContentAlignment ovládací prvek podporuje.
private:
void AutoSizeControl( Control^ control, int textPadding )
{
// Create a Graphics object for the Control.
Graphics^ g = control->CreateGraphics();
// Get the Size needed to accommodate the formatted Text.
System::Drawing::Size preferredSize = g->MeasureString( control->Text, control->Font ).ToSize();
// Pad the text and resize the control.
control->ClientSize = System::Drawing::Size( preferredSize.Width + (textPadding * 2), preferredSize.Height + (textPadding * 2) );
// Clean up the Graphics object.
delete g;
}
private void AutoSizeControl(Control control, int textPadding)
{
// Create a Graphics object for the Control.
Graphics g = control.CreateGraphics();
// Get the Size needed to accommodate the formatted Text.
Size preferredSize = g.MeasureString(
control.Text, control.Font).ToSize();
// Pad the text and resize the control.
control.ClientSize = new Size(
preferredSize.Width + (textPadding * 2),
preferredSize.Height+(textPadding * 2) );
// Clean up the Graphics object.
g.Dispose();
}
Private Sub AutoSizeControl(control As Control, textPadding As Integer)
' Create a Graphics object for the Control.
Dim g As Graphics = control.CreateGraphics()
' Get the Size needed to accommodate the formatted Text.
Dim preferredSize As Size = g.MeasureString( _
control.Text, control.Font).ToSize()
' Pad the text and resize the control.
control.ClientSize = New Size( _
preferredSize.Width + textPadding * 2, _
preferredSize.Height + textPadding * 2)
' Clean up the Graphics object.
g.Dispose()
End Sub
Poznámky
Objekt Graphics , který načítáte metodou CreateGraphics , by neměl být normálně zachován po zpracování aktuální zprávy systému Windows, protože cokoli namalované s tímto objektem se vymaže s další WM_PAINT zprávou. Proto nelze objekt uložit do mezipaměti Graphics pro opakované použití, s výjimkou použití ne vizuálních metod, jako je Graphics.MeasureString. Místo toho musíte volat CreateGraphics pokaždé, když chcete objekt použít Graphics , a potom volat Dispose , až ho budete hotovi používat. Další informace o zprávách systému Windows naleznete v tématu WndProc.
Podle návrhu CreateGraphics nastaví vlastnictví volajícího vlákna a selže, pokud se volá na jiných vláknech.
Poznámka
Kromě InvokeRequired vlastnosti existují čtyři metody ovládacího prvku, který je bezpečný pro vlákno: Invoke, BeginInvoke, EndInvokea CreateGraphics pokud popisovač pro ovládací prvek již byl vytvořen. Volání CreateGraphics před vytvořením popisovače ovládacího prvku ve vlákně na pozadí může způsobit nelegální volání mezi vlákny. U všech ostatních volání metod byste měli použít jednu z metod vyvolání pro zařazování volání do vlákna ovládacího prvku.