This article is currently in the process of being translated into Hungarian (~99% done).
Control ToolTips
Tipp vagy elemleírás - több név, de az elv ugyanaz: lehetővé teszi, hogy további információkat kapjunk egy adott vezérlőelemről vagy hivatkozásról (link) azáltal, hogy az egérrel rámutatunk (hover, lebegtetés). A WPF természetesen szintén támogatja ezt a koncepciót, mégpedig a FrameworkElement osztály ToolTip tulajdonsága által - majd mindegyik WPF vezérlőelem örökli ezt.
A tipp vezérlőelemhez rendelése roppant egyszerű, amint ezt láthatjuk a következő nagyon is alapszintű példán:
<Window x:Class="WpfTutorialSamples.Control_concepts.ToolTipsSimpleSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ToolTipsSimpleSample" Height="150" Width="400">
<Grid VerticalAlignment="Center" HorizontalAlignment="Center">
<Button ToolTip="Click here and something will happen!">Click here!</Button>
</Grid>
</Window>
Amint a képernyőmásolaton látható, ennek eredménye mihelyst az egérrel a gombra mutatunk, egy lebegő doboz amely a megadott szöveget tartalmazza. Ez az amit a legtöbb kezelőfelületi keretrendszer biztosít - a szöveg megjelenítése, és semmi több.
Azonban a WPF-ben ToolTip tulajdonság típusa nem string, hanem object, azaz rakhatunk bele amit csak akarunk. Ezáltal lehetőség nyílik menő megoldásokra amelyek gazdagabb és hasznosabb tippeket nyújtanak a felhasználónak. Vizsgáljuk meg a következő példát és vessük össze az előzővel!
<Window x:Class="WpfTutorialSamples.Control_concepts.ToolTipsAdvancedSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ToolTipsAdvancedSample" Height="200" Width="400" UseLayoutRounding="True">
<DockPanel>
<ToolBar DockPanel.Dock="Top">
<Button ToolTip="Create a new file">
<Button.Content>
<Image Source="/WpfTutorialSamples;component/Images/page_white.png" Width="16" Height="16" />
</Button.Content>
</Button>
<Button>
<Button.Content>
<Image Source="/WpfTutorialSamples;component/Images/folder.png" Width="16" Height="16" />
</Button.Content>
<Button.ToolTip>
<StackPanel>
<TextBlock FontWeight="Bold" FontSize="14" Margin="0,0,0,5">Open file</TextBlock>
<TextBlock>
Search your computer or local network
<LineBreak />
for a file and open it for editing.
</TextBlock>
<Border BorderBrush="Silver" BorderThickness="0,1,0,0" Margin="0,8" />
<WrapPanel>
<Image Source="/WpfTutorialSamples;component/Images/help.png" Margin="0,0,5,0" />
<TextBlock FontStyle="Italic">Press F1 for more help</TextBlock>
</WrapPanel>
</StackPanel>
</Button.ToolTip>
</Button>
</ToolBar>
<TextBox>
Editor area...
</TextBox>
</DockPanel>
</Window>
Látható, hogy ebben a példában az első gombhoz csupán egy egyszerű szöveges tippet rendeltünk, de a második gomb sokkal fejlettebb megoldást használ. Ebben a bonyolultabb példában egy panel elemet használunk gyökérelemként; ez aztán lehetővé teszi, hogy a továbbiakban bármely más elemeket is felhasználjuk. Az eredmény egy menő tipp fejléccel, szöveggel amelyen az F1 gombbal további segítséget kérhetünk, sőt, még egy ikont is tartalmaz.
Opciók Haladóknak
A ToolTipService osztály egy csomó olyan érdekes tulajdonságot tartalmaz amely hatást gyakorol a tippjeink viselkedésére. Ezeket közvetlenül azon az elemen kell beállítani amelyhez a tipp is tartozik. Ahogyan alant mutatjuk, ahol meghosszabbítjuk az időt amíg a tipp megjelenítve marad a ShowDuration tulajdonság megadásával (5000 miliszekundumra, azaz 5 másodpercre állítottuk be).
<Button ToolTip="Create a new file" ToolTipService.ShowDuration="5000" Content="Open" />
Azt is megszabhatjuk, legyen-e a tippnek árnyéka (HasDropShadow tulajdonság), vagy hogy a tipp letiltott elemeken is megjelenjen (ShowOnDisabled tulajdonság). További érdekes tulajdonságot is találhatunk, a részletek a dokumentációban találhatók: http://msdn.microsoft.com/en-us/library/system.windows.controls.tooltipservice.aspx .
Összefoglaló
A tipp komoly segítségforrás a felhasználó számára; a WPF-ben egyaránt könnyen használhatóak és rugalmasak. Használjuk fel a teljes szabadságot a tipp tartalma és megjelenése felett, valamint a ToolTipService osztály tulajdonságait arra, hogy felhasználóbarátabb beágyazott segítséget biztositsunk alkalmazásainkban!