Adorner指南
指南是裝飾元素,旨在突出和強調(diào)父表單中的特定點或區(qū)域,并為這些區(qū)域提供可選描述。 在下面的動畫中,五種不同的指南將自動一一顯示, 這次交互式導(dǎo)覽突出顯示了主要的應(yīng)用程序區(qū)域,并指定了它們所基于的DevExpress控件。

指南是Guide類的對象,與其他Adorner UI Manager子項相同,每個指南都有一個目標——分配給該指南的AdornerElement.TargetElement屬性的UI元素。 要創(chuàng)建和修改指南,請單擊組件的智能標記上的Choose Elements鏈接,然后使用調(diào)用的Collection Editor對話框。
Demo: Guides(需要安裝16.2版或更高版本的DevExpress Demo Center)
共同概念
最初,所有adorner指南都在運行時隱藏,要打開這些指南,請將AdornerUIManager.ShowGuides屬性設(shè)置為true,完成此操作后,半透明的灰色層將使您的整個表單變暗(用戶控件)。 選定的引導(dǎo)線通過用透明顏色繪制其目標元素的區(qū)域在此基礎(chǔ)層中切出一個“hole”,這將為目標區(qū)域創(chuàng)建突出顯示效果,當前未選擇的參考線僅顯示其邊框。下圖說明了一個示例。

最終用戶可以單擊指南來選擇它們,要隱藏所有參考線及其下方的灰色層,最終用戶必須按Escape鍵。 請注意顯示指南時,最終用戶不能使用表單的任何UI元素,因為所有mouse事件都被 adorner layer攔截。
要循環(huán)瀏覽現(xiàn)有指南,請使用管理器的AdornerUIManager.SelectNext和AdornerUIManager.SelectPrev 方法,這些方法根據(jù)其TabIndex屬性值顯示指南。AdornerUIManager.SelectElement 方法可讓您更加具體,并直接導(dǎo)航到所需的指南。
彈出式窗口
如果指南的GuideDefaultProperties.AllowFlyoutPanel 屬性不等于DefaultBoolean.False,則每個指南在激活時都會顯示彈出面板, 最初此面板為空,如下所示。

要為任何現(xiàn)有指南填充彈出面板,請?zhí)幚砉芾砥鞯腁dornerUIManager.QueryGuideFlyoutControl 事件, 此事件提供e.SelectedElement屬性并標識為其彈出指南的面板。 e.Control屬性接受任何控件,這些控件將顯示在所需指南的彈出面板中。 下面的代碼示例說明了如何使用HTML格式的文本字符串填充指南彈出窗口。
C#:
void adornerUIManager1_QueryGuideFlyoutControl(object sender, QueryGuideFlyoutControlEventArgs e) { if(e.SelectedElement.TargetElement == navBarControl) e.Control = new LabelControl() { AllowHtmlString = true, Width = 350, AutoSizeMode = LabelAutoSizeMode.Vertical, Padding = new Padding(20), Text = "<b>Navigation Bar</b><br>" + "A side navigation control that supports integration with Office Navigation Bar<br><br>" + "Shows navigation options for your currently selected module" }; }
VB.NET:
Private Sub adornerUIManager1_QueryGuideFlyoutControl(ByVal sender As Object, ByVal e As QueryGuideFlyoutControlEventArgs) If e.SelectedElement.TargetElement = navBarControl Then e.Control = New LabelControl() With { .AllowHtmlString = True, .Width = 350, .AutoSizeMode = LabelAutoSizeMode.Vertical, .Padding = New Padding(20), .Text = "<b>Navigation Bar</b><br>" & "A side navigation control that supports integration with Office Navigation Bar<br><br>" & "Shows navigation options for your currently selected module"} End If End Sub
彈出面板可以承載更復(fù)雜的內(nèi)容,而不是簡單的標簽。 在下圖上,彈出按鈕顯示三個按鈕和一個WindowsUI Button Panel。

彈出面板的大小會自動調(diào)整來適合其內(nèi)容,要設(shè)置彈出顯示位置,請使用GuideDefaultProperties.FlyoutLocation屬性。
外觀設(shè)置
您可以自定義任何引導(dǎo)元素的外觀以及外部圖層的外觀。 要重新繪制參考線(其邊界和內(nèi)部區(qū)域),請訪問Guide.Appearances(對于單個參考線)和AdornerUIManager.GuideAppearances(對于所有參考線)組中的屬性,個別指南外觀設(shè)置會覆蓋相對的全局設(shè)置。下圖顯示了自定義指南。

重要提示:
在為參考線設(shè)置自定義背景色時,請使用四位數(shù)的ARGB值分配半透明色。
C#:
guide1.Appearances.Selected.BackColor = Color.FromArgb(100, 150, 0, 0);
VB.NET:
guide1.Appearances.Selected.BackColor = Color.FromArgb(100, 150, 0, 0)
可以使用分配給GuideAppearances.Layer屬性的AppearanceObject繪制外部層。 與自定義參考色相同,在設(shè)置自定義圖層背景時,請使用ARGB值代替純色。

最后,要自定義指南彈出面板,請使用AdornerUIManager.GuideProperties組。 在這里,可以利用GuideDefaultProperties.FlyoutBackColor和GuideDefaultProperties.FlyoutBorderColor 屬性來應(yīng)用自定義外觀設(shè)置, GuideDefaultProperties.FlyoutOpacity屬性使您可以創(chuàng)建半透明的彈出面板,下圖說明了具有海軍藍邊界和天藍色背景的非透明引導(dǎo)彈出。
