This article has been localized into Ukrainian by the community.
Спливаючі підказки елементів управління
Спливаючі підказки можуть мати різні назви, але їх суть залишається незмінна: можливість отримувати додаткову інформацію про певний елемент керування або посилання, провевши над ним курсором миші. WPF звичайно також підтримує цей концепт, і використовуючи ToolTip властивість, яка знаходиться в FrameworkElement классі, від якого наслідує майже кожен елемент керування WPF.
Вибрати підказку для елементу управління дуже легко, як можна побачити у цьому першому і найпростішому прикладі.
<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>
На зображенні Ви можете побачити плаваюче поле з заданим рядком, як результат проведення курсором миші над кнопкою. Це і є те, що більшість UI фреймворків пропонує - відображення текстового рядка і нічого більше.
Однак, в WPF, ToolTip властивість, насправді, не є string типом, натомість, вона є типом object, що означає що ми можемо записати туди що завгодно. Це відкриває деякі досить круті можливості, коли ми можемо надати користувачеві набагато змістовніші та корисніші підказки. Для порівняння візьмемо два приклади: цей та попередній.
<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>
Зверніть увагу на те, як використовується звичайна підказка типу string у першому прикладі, а потім значно більш просунута у другому. У другому випадку ми використовуємо панель, як кореневий елемент управління, після чого ми можемо додавати інші елементи до нього, як нам це потрібно. Такий результат є досить вражаючим, адже тут є заголовок, опис, підказка, що можна натиснути F1 для отримання додаткової допомоги, а також іконка допомоги.
Розширені опції
Клас ToolTipService має купу цікавих властивостей, які впливатимуть на поведінку ваших підказок. Ви встановлюєте їх безпосередньо на елемент керування, який має підказку, наприклад як тут, де ми збільшуємо час показу підказки за допомогою властивості ShowDuration (встановлюємо значення 5,000 мілісекунди або 5 секунд):
<Button ToolTip="Create a new file" ToolTipService.ShowDuration="5000" Content="Open" />
Ви також можете керувати тим, чи має спливаюче вікно мати тінь, використовуючи властивість HasDropShadow, чи повинні підказки відображатись також для вимкнених елементів керування за допомогою властивості ShowOnDisabled. Є ще кілька цікавих властивостей, тому для повного списку, будь ласка, зверніться до документації: http://msdn.microsoft.com/en-us/library/system.windows.controls.tooltipservice.aspx
Висновок
Підказки можуть значно допомогти як користовачу, так і у WPF, вони прості у використанні та надзвичайно гнучкі. Поєднайте те, що ви можете повністю контролювати дизайн та вміст підказки за допомогою властивостей класу ToolTipService, щоб створити більш зручну вбудовану довідку в вашій програмі.