This article has been localized into Vietnamese by the community.
Chú giải control
Chú giải, thông tin hoặc gợi ý - rất nhiều cái tên, nhưng tựu trung khái niệm này là: khả năng cho phép hiển thị những thông tin thêm về 1 control nhất định hoặc liên kết khi rê chuột trên nó. WPF hiển nhiên cũng hỗ trợ khái niệm này, bằng cách sử dụng thuộc tính ToolTip được tìm thấy bên trong class FrameworkElement class mà bất cứ WPF nào cũng thừa kế từ nó.
Việc chỉ định 1 chú giải cho 1 control thì rất đơn giản, như bạn sẽ thấy trong ví dụ rất cơ bản sau:
<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>
Như bạn có thể thấy ở hình trên, 1 text chú giải được hiển thị mỗi khi rê chuột trên button. Hầu hết các framework về giao diện nào đều cung cấp điều này - hiển thị 1 chuỗi text và không có gì hơn.
Tuy nhiên, ở WPF, thuộc tính ToolTip thực tế không phải kiểu chuỗi, thay vào đó là kiểu object, có nghĩa là chúng ta có thể đặt bất cứ thứ gì chúng ta muốn vào trong đó. Điều này mở ra những khả năng rất thú vị, chúng ta có thể cung cấp cho người dùng những chú giải phong phú hơn và hữu ích hơn. Chẳng hạn, xem xét ví dụ sau và so sánh nó với ví dụ đầu tiên:
<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>
Quan sát ví dụ này sử dụng 1 chuỗi chú giải đơn giản cho button đầu tiên và sau đó là 1 chú giải nâng cao cho button thứ 2. Trong trường hợp nâng cao, chúng ta sử dụng 1 panel làm control gốc và rồi chúng ta thoải mái thêm những control mà chúng ta thích vào đó. Kết quả là rất tuyệt, với 1 tiêu đề, 1 chuỗi mô tả và 1 gợi ý là bạn có thể nhấn F1 để xem thêm trợ giúp, đính kèm 1 biểu tượng trợ giúp.
Những Tùy chọn nâng cao
Lớp ToolTipService có 1 mớ các thuộc tính thú vị sẽ tác động hành vi trên chú giải của bạn. Bạn có thể thiết lập chúng trực tiếp trên control có chứa tooltip, chẳng hạn như sau, chúng ta tăng thời gian chú giải hiển thị bằng cách sử dụng thuộc tính ShowDuration (chúng ta thiết lập nó là 5000 mili giây hoặc 5 giây):
<Button ToolTip="Create a new file" ToolTipService.ShowDuration="5000" Content="Open" />
Bạn cũng có thể điều khiển hộp chú giải có bóng đổ hay không bằng cách sử dụng thuộc tính HasDropShadow, hoặc cũng như chú giải nên được hiển thị hoặc không đối với control bị vô hiệu hóa bằng cách sử dụng thuộc tính ShowOnDisabled. Có vài thuộc tính thú vị khác, để có danh sách đầy đủ, vui lòng tra cứu tài liệu: http://msdn.microsoft.com/en-us/library/system.windows.controls.tooltipservice.aspx
Tóm tắt
Chú giải có thể là 1 trợ giúp tuyệt vời cho người dùng, và trong WPF chúng vừa dễ dùng vừa cực kỳ uyển chuyển. Kết hợp các yếu tố bạn có thể hoàn toàn điều khiển thiết kế và nội dung chú giải với những thuộc tính từ lớp ToolTipService, để tạo ra trợ giúp trực tiếp và thân thiện với người dùng trong những ứng dụng của bạn.