3. Základní kontrolky

3.3. Button

Button neboli tlačítko může být na formulář přidáno pomocí tagu <Button>. Text tlačítka může být uveden mezi značkami:

<Button>Hello, world!</Button>

Nebo pomocí vlastnosti Content:

<Button Content=" Hello, world!“ />

 

Anebo definování Content pomocí tagů:

<Button>

 <Button.Content>

   Hello, world!

 <Button.Content>

</Button>

Tato možnost se ale nepoužívá, neboť Content je výchozí vlastnost a není nutné ji tudíž v tomto kontextu uvádět. Výsledek ve všech případech vypadá stejně:

image

U tlačítka je velmi důležitá jeho základní funkčnost, tj. je nutné, aby se po klinutí na tlačítko „něco stalo“. V rámci tlačítka je tedy vhodné definovat, jaká metoda se má spustit po kliknutí. To vše se definuje ve vlastnosti Click. Takže například:

<Button Click="HelloWorldButton_Click">Hello, World!</Button>

definuje, že se má po kliknutí na tlačítko spustit metoda HelloWorldButton_Click. Tu je potřeba ještě implementovat v Code-Behind:

private void HelloWorldButton_Click(object sender, RoutedEventArgs e)
 
{
 
    MessageBox.Show("Hello, world!");
 
}

Tato metoda zajistí, že po kliknutí na tlačítko se objeví okno s textem Hello, world!.

Tlačítko je možné naformátovat,  pak např. XAML kód:

<Button Background="Beige" Foreground="Blue" FontWeight="Bold">Formatted Button</Button>

Vytvoří takovéto tlačítko:

image

Do vlastnosti Content (respektive) mezi značky Button je možné vložit i komplexní XAML kód. Jen pozor: je nutné vše zapouzdřit do nějakého panelu – např. Grid, StackPanel, WrapPanel – viz dále. Ukažme si tedy, jak do tlačítka vložit text s obrázkem:

<Button Padding="5">  
 
    <StackPanel Orientation="Horizontal">  
 
    <Image Source="/WpfTutorialSamples;component/Images/help.png" />  
 
    <TextBlock Margin="5,0">Help</TextBlock>  
 
    </StackPanel>  
 
</Button>


Do panelu StackPanel byly vloženy dvě kontrolky – Image a TextBlock. Aby vše fungovalo, musíme v projektu mít složku Images a v ní soubor help.png.

Velice zajímavá a hojně využívaná vlastnost je Padding. Jedná se o možnost vynechání volného místa uvnitř tlačítka. Jedná o „Margin naruby“.