2013-02-18 123 views
0

是否有可能使帶箭頭的頭一個自定義的控制,所以它看起來是這樣的: enter image description here用箭頭創建自定義提示

唯一的問題我已經是創造箭頭,因爲內容控制將很容易插入。

我發現的最接近的是:http://www.componentone.com/SuperProducts/SuperTooltipWinForms/但我不想使用預先構建的控件,它是共享軟件。

謝謝。

+0

如果可能的話,我想知道如何做到這一點的WinForms的。 – CodexVideos 2013-03-06 07:53:54

回答

0

工具提示ContentControl s,這意味着他們可以採取任何單一的對象(如StackPanel),所以是的,這是可能的。

我可能會看到添加一個三角形ShapeGrid/StackPanel到沒有填充/邊距的StackPanel,所以兩個一起運行。在內部網格/堆疊面板內部,放置您的TextBox es,TextBlock s,Label或您在任何正常施工工作中擁有的東西。 MS'Tooltip page給出了一個圖像示例(靠近頁面底部)。

或者,您可以使用ControlTemplate

編輯自定義工具提示本身:只注意到你的WinForms空間是。這適用於WPF。我不確定有多少分享。

+0

你能提供給我任何例子或者我可以從哪裏開始,因爲我沒有WPF經驗嗎? – CodexVideos 2013-02-18 17:22:46

+0

對不起,錯過了這個。你正在做一個WPF應用程序或者你在做WinForms? – mcalex 2013-02-21 04:05:35

+0

這是一個WinForms,但我可以切換到WPF,如果你可以一步一步地提供給我,因爲我以前沒有真正使用它。 – CodexVideos 2013-02-23 13:46:32

0

我發現最簡單的方法是使用帶有三角形圖像畫筆的矩形。這是很容易的部分。還有兩個問題,我搞清楚自己,這些是:

  1. 定位箭頭,使其直接在目標對象的下方。這可以部分地通過使用我在這裏找到的解決方案來彌補:How to position tooltip bottom center。但是,它不會移動箭頭,而是移動工具提示本身。您可以水平對齊中心的箭頭,但如果工具提示沒有足夠的居中空間,則箭頭不會直接出現在目標對象的下方。
  2. 當放置位置關閉時,使箭頭出現在工具提示框上方,放置位置向下時出現箭頭。例如,爲了容納可用空間,工具提示可以出現在目標上方而不是下面。假設工具提示佈局是一個網格,並且這些是您希望支持的唯一佈局位置,則可以使用觸發器來控制該元素所在的行。

我還沒有測試添加陰影,但是如果你的顯示沒有,你可以嘗試向工具提示父邊框添加一個邊距(無關緊要,因爲它永遠不會與任何衝突)。

對於具有圖像畫筆的矩形,可以參考我在CodeProject上編寫的文章(這很簡單)。

http://www.codeproject.com/Articles/1103396/Image-Controls-Using-Dynamic-Colors

enter image description here

在這個例子中的工具提示被截斷,因爲它是在窗口的最邊緣。工具提示目標應該是加號圖標,但它的位置正被推到右側。理想情況下,我們想要一種方法將箭頭移回到正下方。我已編輯的例子圖片顯示了理想的結果:

enter image description here

作爲一個側面說明,如果你的箭頭需要一個邊界,你可以換矩形出與路徑對象。你只需要知道畫哪條路徑:P