This article has been localized into Polish by the community.
Podpowiedzi dla kontrolek
Podpowiedzi - uzyskanie dodatkowych informacji nt. konkretnej kontrolki, czy linku poprzez najechanie na nie kursorem myszki. WPF rzecz jasna wspiera tą funkcję, poprzez użycie właściwości ToolTip znajdującej się w klasie FrameworkElement, po której dziedziczy niemal każda kontrolka WPF.
Tworzenie podpowiedzi dla kontrolek jest bardzo proste, co można zauważyć na poniższym przykładzie:
<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>
Jak widać na obrazku, w momencie najechania kursorem myszki na przycisk, pojawia się w dymek wraz z odpowiednio zdefiniowanym w kodzie łańcuchem znaków. Taką funkcjonalność wyświetlania dodatkowego tekstu oferuje większość frameworków UI.
Właściwość ToolTip nie jest jednak typu string, a typem obiektowym, co oznacza że możemy tam umieścić cokolwiek chcemy. Otwiera to przed nami mnogość całkiem ciekawych możliwości, dzięki czemu jesteśmy w stanie zapewnić użytkownikowi "bogatsze" i bardziej pomocne podpowiedzi. Dla przykładu porównaj działanie poniższego kodu z omawianym przed chwilą:
<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>
Zwróć uwagę, iż w tym przykładzie najpierw skorzystaliśmy ze zwykłego łańcucha tekstu, dla podpowiedzi pierwszego przycisku. A następnie z bardziej zaawansowanych opcji w przypadku drugiego. W zaawansowanym przypadku najpierw wykorzystujemy panel jako główną kontrolkę, a następne dodajemy już zgodnie z pozostałymi założeniami dla naszej podpowiedzi. Ostatecznym rezultatem jest profesjonalna wyglądająca podpowiedź, z nagłówkiem, opisem, oraz dodatkowymi podpowiedziami kryjącymi się po naciśnięciu przycisku F1. O czym użytkownik zostaje dodatkowo poinformowany.
Opcje zaawansowane
Klasa ToolTipService zawiera sporo interesujących właściwości, które mają bezpośredni wpływ na zachowanie tworzonych przez ciebie podpowiedzi. Aby tak było musisz umieścić je bezpośrednio w kontrolce zawierającej podpowiedź. Jeżeli chcielibyśmy, aby czas wyświetlania się podpowiedzi został wydłużony, musielibyśmy zastosować do tego właściwość ShowDuration, którą ustawiamy na 5.000 milisekund (5 sekund).
<Button ToolTip="Create a new file" ToolTipService.ShowDuration="5000" Content="Open" />
Za pomocą właściwości HasDropShadow możesz dodatkowo kontrolować, czy dana podpowiedź będzie, czy też nie rzucać cień. Tak samo jak to, czy podpowiedzi będą się wyświetlać dla nieaktywnych kontrolek: ShowOnDisabled. Pełną listę właściwości możesz sprawdzić pod adresem z oficjalną dokumentacją: http://msdn.microsoft.com/en-us/library/system.windows.controls.tooltipservice.aspx
Podsumowanie
Podpowiedzi mogą się okazać wielką pomocą dla użytkowników. WPF sprawia, że umieszczanie ich w kodzie jest bardzo łatwe, a na dodatek są niewiarygodnie elastyczne. Łaczać fakt, że możesz całkowicie kontrolować wygląd jak i zawartość swoich podpowiedzi, z właściwościami jakie daje klasa ToolTipService, podpowiedzi aż proszą się o zastosowanie ich we własnych aplikacjach.