1. 程式人生 > >WPF教程(二十一)工具提示

WPF教程(二十一)工具提示

工具提示有各種叫法,意思都是一樣的:在滑鼠停留在某一個控制元件或者某個連結上時,顯示其對應的額外資訊。WPF中通過使用FrameworkElement基類中的ToolTip屬性來實現,幾乎所有控制元件都繼承於此類。

為控制元件指定一個工具提示非常簡單,如下:

<span style="font-size:14px;"><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></span>

A simple ToolTip example

截圖中你可以看到,一旦滑鼠停留在按鈕上,就會出現一個浮動的小框,顯示了具體的資訊。大部分UI框架都提供這個資訊——就顯示一行文字。

但是,在WPF中,ToolTip屬性實際上不是一個字串型別,而是一個物件型別,也就是說我們可以把任何東西放到裡面。這樣的開放方式使得很多可能得以實現,從而給使用者提供非常豐富有幫助的提示。

<span style="font-size:14px;"><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></span>
A more advanced ToolTip example

第一個按鈕用了非常簡單的一行文字作為提示。第二個按鈕使用一個容器作為根控制元件,然後得以把我們想要的控制元件放進去。結果很酷:一個標題、一段描述以及一個圖示,提示你可以按F1獲取更多幫助。

高階選項

在ToolTipService類中,有一些實用的屬性,用於改變工具提示的展示。你可以直接在支援工具提示的控制元件裡設定這些屬性,例如,通過使用ShowDuration屬性來延長提示的顯示時間(這裡設定了5秒)

<span style="font-size:14px;">    <Button ToolTip="Create a new file" ToolTipService.ShowDuration="5000" Content="Open" />
</span>

總結

工具提示對使用者幫助很大,在WPF中,使用簡單且非常靈活。在你的應用中,通過使用ToolTipService類的屬性來設計工具提示,以建立一個使用者友好的內聯幫助系統。

相關推薦

WPF教程工具提示

工具提示有各種叫法,意思都是一樣的:在滑鼠停留在某一個控制元件或者某個連結上時,顯示其對應的額外資訊。WPF中通過使用FrameworkElement基類中的ToolTip屬性來實現,幾乎所有控制元件都繼承於此類。 為控制元件指定一個工具提示非常簡單,如下:<span

Spring.NET教程整合Web Service(應用篇)

desc 例子 art 需要 ace 換工作 ali 關聯 private 雖然目前.net對WebService支持的非常好,Spring.NET認為還是有幾個方面可以改進: 第一、.NET在.asmx文件中保存WebService請求和服務對象的關聯關系,這些.asm

JavaFX UI控制元件教程之Tooltip

翻譯自  Tooltip 在本章中,您將瞭解工具提示,即當滑鼠游標懸停該控制元件時,可以為任何UI控制元件設定的控制元件。 的Tooltip類表示通常用於顯示關於所述使用者介面的控制附加資訊的公共UI元件。可以通過呼叫setTooltip方法在任何控制元件上設定工具提示。

WPF教程WrapPanel

WrapPanel用於一個接一個的排列子控制元件,以水平或者垂直方向,當空間不足時就會自動切換到下一行。適合於需要水平或者垂直排列控制元件且能自動換行的情況。 水平方向排列時,每一行所有子控制元件的高度都被統一成固定的值,這個值由最高的那個決定;每一列垂直方向排列時,所有子

Senparc.Weixin.MP SDK 微信公眾平臺開發教程:在小程式中使用 WebSocket .NET Core

  本文將介紹如何在 .NET Core 環境下,藉助 SignalR 在小程式內使用 WebSocket。關於 WebSocket 和 SignalR 的基礎理論知識不在這裡展開,已經有足夠的參考資料,例如參考 SignalR 的官方教程:https://docs.microsoft.com/zh-cn/a

Golang教程協程

在上一篇教程中,我們討論了併發,以及併發和並行的區別。在這篇教程中我們將討論在Go中如何通過Go協程實現併發。 什麼是協程 Go協程(Goroutine)是與其他函式或方法同時執行的函式或方法。可以認為Go協程是輕量級的執行緒。與建立執行緒相比,建立

WPF教程密碼框

WPF中編輯常規的文字都是使用文字框,但是如果是輸入密碼呢?功能應該是一樣的,但是我們不想周邊的人看著我們一個字母一個字母的輸入,這樣密碼就被洩漏了,因此我們想用別的字元來替代真實密碼的顯示。出於這個目的,WPF有一個密碼框控制元件,用起來和文字框一樣。 <span

SQL語句—— 觸發器DML觸發器

cti lock dml set sql語句 事件 check約束 服務 expand 觸發器 一 、觸發器概述(特殊的存儲過程) 定義: 在修改指定表值的數據時執行的 存儲過程. 不同的是 : 執行存儲過程要使用EXEC語句來調用,而觸發器的執行不需要使用EX

Android學習路線運用Fragment構建動態UI——創建一個Fragment

動態 app idt 文檔 部分 roi 現實 調用 android學習 你能夠把fragment看成是activity的模塊化部分。它擁有自己的生命周期,接受它自己的輸入事件,你能夠在activity執行時加入或者刪除它(有點像是一個“子activity”。你

Struts2 數據標簽

env 字符串 property http smi syn mit selected ont Struts2 的數據標簽主要用於操作頁面上顯示的數據。下面列出了主要的數據標簽: action標簽 此標簽允許開發人員通過指定action名稱和可選的命名空間直接從JSP頁面調用

Python學習筆記

準備 for ring 價格 python use imp pri exce 使用ElementTree解析XML文件 # 導入Python中內置的處理XML文件的模塊try: import xml.etree.cElementTree as ETexcept Imp

Java學習筆記:類型轉換和instanceof關鍵字

方法 png true feed out 實例 strong 運算符 nbsp 基本數據類型轉換: 自動類型轉換:把大類型的數據賦值給大類型的變量(此時的大小指的是容量的範圍) 1 byte b = 12; //byte是一個字節 2 int i = b; //i

圖像處理基於數據驅動的人臉卡通動畫生成-Siggraph Asia 2014

ssi 原來 大於 搜索 nbsp details 一起 fontsize man http://blog.csdn.net/garfielder007/article/details/50582018 在現實生活中,我們經常會去評價一個人,長得是否漂亮、是不是帥哥美女,然

Python學習 —— 前端之JavaScript

開始 mode mba html 國際 sca 執行 嵌入式 規範 轉載自http://www.cnblogs.com/liwenzhou/p/8004649.html 一、JavaScript概述   1.JavaScript的歷史 1992年Nombas開發出C-mi

企業分布式微服務雲SpringCloud SpringBoot mybatis 構建restful API

tis lis bind strong img tro entity 數據源 host 引入依賴 在pom文件引入mybatis-spring-boot-starter的依賴: <dependency> <groupId>o

JmeterJmeter常見問題及場景應用

con 當前 登陸 log jenkins path 業務 參數 以及   Jmeter作為工具來講,已經是一個相對比較牛掰的工具,除了它能夠支持那麽多協議以及方法之外,更在與它的前置處理以及後置處理、同步監控的人性化。當然,所有的工具、框架都是作為業務的支撐,如果不能滿足

Linux學習總結正則三劍客之awk

awkawk 也是流式編輯器,它比sed的功能更強大 1.截取文檔中的某段 awk -F ‘:‘ ‘{print $1}‘ /etc/passwd |head -2-F 指定分割符,不指定以空格或者tab為分隔符print 為打印動作$1 為第一字段, $2 為第二字段,依次類推,$0標示整行那麽打印整個文檔

Vue使用express模擬接口數據

引入 undefine 數據 img htm eve IT image customer 1.下載express ... 2.使用vue-cli下載好項目文件 ... 3.找到文件 build - webpack.dev.conf.js ‘use strict‘ cons

C之 #error 和 #line

C語言 #error #line 我們今天來講下 C 語言中的兩個比較偏僻的知識點,之所以說偏僻是因為在平時的代碼中我們見得很少。首先來說下 #error,它是用於生成一個編譯錯誤消息。用法如下:#error message;註意 message 不需要用雙引號包圍。#error

Android開發實戰:淺談android:clipChildren屬性

.cn viewpage port 部分 lap ole 有一個 默認 版本 原文:Android開發實戰(二十一):淺談android:clipChildren屬性實現功能: 1、APP主界面底部模塊欄 2、ViewPager一屏多個界面顯示 3、........