Control 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表使用 ControlTemplate 定義外觀的 UI 元素的基底類別。 ContentControl、UserControl、ItemsControl 及多個實務控制項的父類別。
public ref class Control : FrameworkElement
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Control : FrameworkElement
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Control : FrameworkElement
Public Class Control
Inherits FrameworkElement
- 繼承
- 衍生
- 屬性
備註
Control 類別是你為應用程式及其使用者介面新增許多控制項的基礎類別。 Control 類別定義的行為非常有限;你可以在 XAML 中新增實際的 Control 元素作為 UI,但通常你要加入直接或間接繼承自 Control 的東西,例如 按鈕 或 清單框。 關於可用控制項清單,請參見 Controls for Windows 應用程式。
Template 屬性使用 ControlTemplate 類型,指定控制項的視覺外觀。 如果你想改變控制項的外觀但保留其功能,建議你考慮建立新的 ControlTemplate ,而不是定義新的 Control 類。 如需詳細資訊,請參閱 控制項範本。
Control 是 UserControl 的父系統。 UserControl 是設計用於不需要視覺狀態的輕量級控制的基底類別。 雖然 UserControl 技術上繼承了 Template 屬性,但你不能將範本套用到 UserControl。
控制項的隱式樣式
每個為 XAML 定義的實務控制項都有預設樣式,包含其預設控制範本。 控制項可以有隱含樣式,也就是說 FrameworkElement.Style 屬性不會被明確設定。 一旦該隱含樣式可用,幾乎所有控制項的其他屬性都可以用該樣式中的設定器元素設定。 Style 可以將控制項與其他控制邏輯分開初始化,並能設定非程式碼預設值的每個屬性。
隱式樣式作為 Windows Runtime 中的鍵化資源存在,並以 XAML 的二進位表示形式儲存在內部。 你可以取得某個控制項的風格,或是完整一套風格,來了解這些風格和控制範本的定義方式。
特定控制類型與其預設使用的隱含樣式鍵/名稱之間的關聯,是由 DefaultStyleKey 屬性的值所建立。 DefaultStyleKey 屬性受到保護,只有子類別控制類別的人才能更改該值。 如果你只是建立一個控制實例,例如在 XAML UI 中宣告控制項,那麼預設的樣式就是基於控制項類型所隱含的樣式。 更多資訊請參閱 DefaultStyleKey 中的備註。 你不需要更改 DefaultStyleKey 值來使用不同的樣式,只要定義一個擁有相同 TargetType 且與隱式樣式查找相符且作為 XAML 資源存在的 XAML 樣式即可。 如需詳細資訊,請參閱 控制項範本。
視覺狀態模型
視覺狀態模型是一種技術,只需修改控制範本中定義的部分屬性。 你改變屬性值,是為了向使用者提供視覺回饋,告訴控制項正在做什麼,並暗示可能的 UI 互動。 控制項會透過套用零持續時間或短時長的分鏡動畫來修改模板中的部分屬性。 你也可以定義短時間動畫,適用於狀態間的轉換。
視覺狀態本身被定義為控制模板的一部分。 每個視覺狀態都有名稱,這樣控制邏輯就能呼叫 GoToState 方法,當需要特定邏輯狀態時,載入每個視覺狀態。 視覺狀態在視覺狀態群組中宣告,因此彼此排斥的視覺狀態可以確保同一時間只有一個此類狀態處於活躍狀態。 一旦同一群組的另一個視覺狀態被載入,前一個狀態的動畫就會停止套用,但另一個群組的動畫可能仍在運行並套用它們的變更和視覺行為。 例如,一個控制項可能有鍵盤焦點的視覺指示器和指標切換的視覺指示器。 因為這些 UI 模式可以彼此獨立調整,且可以同時發生,所以它們各自定義在不同的視覺狀態群組中。
因為它是以 XAML 定義的控制範本的一部分,你可以更改你在 UI 中使用的任何 XAML 控制項的視覺狀態行為。 然而,邏輯仍基於控制組預期在其中找到特定的視覺狀態群組和命名的視覺狀態。 所以你必須非常小心,確保提供正確命名且結構化的視覺狀態,讓使用者能看到控制項行為的所有面向。 視覺狀態在 控制範本中簡要介紹。
控制的預設視覺狀態有時會使用庫動畫。 你應該盡量保留控制範本或視覺狀態時的庫動畫,因為這些動畫是介面中控制畫面和感覺的重要部分。 更多資訊請參閱 動畫總覽。
操作與焦點
Control 類別定義了幾個影響 UI 鍵盤焦點行為的 API: FocusState 屬性,以及 IsFocusEngaged、 IsEnabled 和 IsTabStop 屬性。 啟用鍵盤焦點是確保 UI 可存取的重要部分,因為每個可聚焦元素都會成為 UI 制表序列的一部分。 通常只有互動式的 UI 元素才會被啟用以接收鍵盤焦點。 例如, TextBox 是互動式的,因為使用者可以輸入文字,而 TextBlock 則不是互動式,因為文字是唯讀的。 大多數從 Control 衍生出來的職業都是真正的互動式,所以它們可以被聚焦,並且應該放在制表序列中。
為了可聚焦,這三項都必須成立:
- 可見性是可見的
- IsEnabled 是 真的
- UIElement.IsTabStop 是 真的
- 控制項必須實例化,並載入其範本(已載 入觸發,控制項連接到應用程式的根視覺化)。如果你想讓某個控制項無法聚焦,可以將 UIElement.IsTabStop 設為 false。 不過,如果你不想讓控制項有焦點是因為它在你的介面中不具互動性,你可能想把 IsEnabled 設為 假 ,讓大家都能明顯感受到缺乏互動。 許多控制項在 IsEnabled =false 時會預先設定視覺狀態,例如標籤中的文字「變灰」。
焦點變更可能會觸發 GotFocus 或 LostFocus 事件。 雖然「FocusedElement」值(透過 GetFocusedElement 方法顯示)會立即更新,但 GotFocus 或 LostFocus 的變更通知是非同步發生的。 這種非同步對焦設計旨在避免當控制邏輯對焦點變化反應過快時,視覺狀態轉換時出現閃爍。
Focus(Microsoft。UI。Xaml.FocusState) 方法可透過程式化設定控制鍵的焦點。 呼叫此方法時請謹慎,因為在使用者未預期時移動鍵盤焦點可能會造成干擾。 Focus(Microsoft 的主要情境。UI。Xaml.FocusState) 要麼設定整個 UI 頁面載入時的第一個鍵盤焦點點,要麼是在父控制容器獲得頂層焦點後(例如在組合框中聚焦文字框)後,將焦點設定在控制項的特定部分。 更多資訊請參見 Focus(Microsoft。UI。Xaml.FocusState)。 FocusState 追蹤的是程式化的焦點還是使用者驅動的,這對視覺狀態有影響,尤其是鍵盤焦點的視覺焦點指示器,所有控制項都應該具備。
事件處理程序覆寫
每個 OnEvent 方法代表對應 UIElement 事件的預先連線事件處理程序。 從 Control 衍生的實務控制可以覆寫 OnEvent 方法,並利用此方法提供針對該輸入事件的控制專屬處理與行為。 最常見的情境是使用事件處理器在事件資料中標記事件為 已處理 。 控制程式碼有優先處理此事件的機會,在呼叫任何連接在控制實例上的事件處理器之前。 當事件資料被標記為 處理時,控制實例上的處理程序將不會被呼叫。 而且活動不會泡泡。
由於 On Event 方法是直接在 Control 上實作,因此 OnEvent 的實作是空的。 但控制組階層中的每個祖先可能都提供了實作。 你看不到這個實作,因為它是內部原生程式碼。 在某些情況下,控制點已經有現成的 事件覆寫 ,標記該事件 已處理。 一旦你為某個控制項提供了初始的 OnEvent 覆寫,任何你從自己控制類別衍生出來的控制項也會繼承你定義的 OnEvent 覆寫。 你用的任何實例也會有這種行為。
Note
應用程式程式碼仍可處理由控制項的 OnEvent 方法邏輯標記為 Handled 的事件,但必須使用 handledEventsToo 參數來執行 UIElement.AddHandler 方法。 欲了解更多資訊,請參閱 UIElement.AddHandler 或 事件與路由事件總覽。
Control 類別定義了數個受保護的虛擬方法,每個方法都與框架層級的輸入事件相關聯。 這些方法旨在為輸入事件提供預先接線的事件處理程序,使控制項能強制該控制項及其所有實例使用特定的輸入行為。 舉例來說,UIElement 定義了一個 PointerPressed 事件。 Control 定義了 OnPointerPressed 方法,定義為空。 在基礎 控制 建構子中,所有相關輸入事件的事件接線都包含了作為監聽者/處理程序的 OnEvent 方法,但最初不會做任何事。 但現在你作為控制作者,只要給一個 OnEvent 方法新的覆寫定義(同時,請確保你的建構子呼叫 base)。 這種行為會繼承到所有實例或子職業,除非有其他子職業者再次覆寫。 由於事件發生順序順序為先,在任何 UI 定義 XAML 之前,他們可以調整事件資料,並可能改變其他監聽者對事件的條件。
特定控制類別中現有的 OnEvent 定義,即使你自己沒有覆蓋任何 OnEvent 方法,也可能影響你作為控制的使用者。 這是因為現有的 OnEvent 定義可能已提供處理事件,該事件將 Handled 屬性值設 為 true 。 這樣會阻止你的實例事件處理系統看到事件,也無法呼叫處理器。 這裡發生的是,有一種刻意的控制設計,強制某些事件對控制系統不重要,無論是因為它們是低階事件,與控制邏輯衝突,或是控制有替換邏輯。 一個顯著的例子是 ButtonBase 類別。 ButtonBase 類別有兩種行為,透過原生覆寫 OnPointerPressed 和 OnKeyDown 來強制執行。 它這麼做是因為它在低層級結合了各種輸入模式,並以控制項專屬 的點擊 事件來回報。 以 PointerPressed 事件處理器為例,如果你嘗試在 Button 實例上處理此處理,你的處理器不會被調用。 這是因為原生的 OnPointerPressed 將 Handled 設 為 true ,導致 PointerPressed 無法傳播到你的實例和應用程式程式碼。 OnKeyDown 的邏輯只是尋找特定的按鍵(Ctrl 和 Enter),所以只要不同時尋找那些鍵,實例處理器還是可以呼叫。
Note
其實有方法可以繞過對 OnEvent 方法的原生處理,針對某些輸入事件。 要做到這點,你需要使用 UIElement.AddHandler 方法搭配 handledEventsToo 來連接你的處理器。 更多資訊請參閱 事件與路由事件總覽。
繼承到文字元素部分的文字屬性
控制定義了幾個與文字呈現相關的屬性。 這些包括:
顯然,並非每個控制項都設計成能顯示其中的文字。 例如,將 FontFamily 設定在 AppBarSeparator 上是合法的,但完全沒有影響。 Control 在基底類別層級定義這些屬性的原因,是為了讓控制範本能輕鬆使用 {TemplateBinding} 標記擴充功能 ,將頂層文字屬性套用到模板內的一個或多個文字元素部分。 舉例來說,如果你看 DatePicker 的控制範本,你會發現根節點是一個容器,而在這個容器裡更深層的還有幾個 ComboBox 部分,實際上接收文字輸入。 這些工具都使用FontWeight="{TemplateBinding FontWeight}"像是讓 DatePicker 設定的頂層字體粗細被內部不同部分使用等陳述。
Control 上的文字屬性也會隱含繼承包含 ContentPresenter 以顯示文字的控制項。 舉例來說,如果你在按鈕上設定 FontSize,模板或 ContentPresenter 部分中沒有明確的 {TemplateBinding} 標記擴充功能來控制模板對頂層 FontSize 值的處理。 但 Control.FontSize 的值會根據範本定義中的上下文隱含由 ContentPresenter.FontSize 繼承,因此按鈕內的 文字會以 你設定的 Control.FontSize 呈現。
XAML 附加屬性
Control 是多個 XAML 附加屬性的主機服務類別。
為了支援 XAML 處理器對附加屬性的存取,並向程式碼暴露等效的 get 與 set 操作,每個 XAML 附加屬性都有一對 Get 與 Set 存取器方法。 另一種在程式碼中取得或設定值的方法是使用相依屬性系統,呼叫 GetValue 或 SetValue ,並將識別欄位傳入相依屬性識別碼。
| 附屬財產 | Description |
|---|---|
| IsTemplateFocusTarget(目標模板) | 取得或設定一個值,指示該元素是否屬於控制範本中包含焦點視覺化的部分。
|
| IsTemplateKeyTipTarget | 取得或設定一個值,指示該元素是否是控制模板中放置關鍵提示的部分。
|
建構函式
| 名稱 | Description |
|---|---|
| Control() |
提供 Control 衍生類別的基底類別初始化行為。 |
屬性
| 名稱 | Description |
|---|---|
| AccessKey |
取得或設定此元素的存取鍵(助記鍵)。 (繼承來源 UIElement) |
| AccessKeyScopeOwner |
取得或設定一個來源元素,提供該元素的存取鍵作用域,即使該元素不在原始元素的視覺樹中。 (繼承來源 UIElement) |
| ActualHeight |
會取得 FrameworkElement 的渲染高度。 請參閱備註。 (繼承來源 FrameworkElement) |
| ActualOffset |
取得此 UIElement 相對於其父節點的位置,該位置是在佈局流程的排列過程中計算出來的。 (繼承來源 UIElement) |
| ActualSize |
取得該 UIElement 在佈局流程安排過程中計算出的大小。 (繼承來源 UIElement) |
| ActualTheme |
取得該元素目前使用的 UI 主題,這可能和 RequestedTheme 不同。 (繼承來源 FrameworkElement) |
| ActualWidth |
它會取得 FrameworkElement 的渲染寬度。 請參閱備註。 (繼承來源 FrameworkElement) |
| AllowDrop |
取得或設定一個值,判斷該 UIElement 是否能作為拖放操作的丟棄目標。 (繼承來源 UIElement) |
| AllowFocusOnInteraction |
會獲得或設定一個值,指示該元素在使用者互動時是否自動獲得焦點。 (繼承來源 FrameworkElement) |
| AllowFocusWhenDisabled |
取得或設定失效控制是否能接收焦點。 (繼承來源 FrameworkElement) |
| Background |
取得或設定一個畫筆作為控制背景。 |
| BackgroundProperty |
識別 背景 依賴屬性。 |
| BackgroundSizing |
取得或設定一個值,表示背景相對於該元素邊界的延伸距離。 |
| BackgroundSizingProperty |
識別 背景尺寸 依賴性屬性。 |
| BaseUri |
取得一個統一資源識別碼(URI),代表 XAML 載入時所建構物件的基礎 URI。 此特性對執行時的 URI 解析非常有用。 (繼承來源 FrameworkElement) |
| BorderBrush |
取得或設定一個筆刷,描述控制點的邊框填充。 |
| BorderBrushProperty |
識別 BorderBrush 相依性屬性。 |
| BorderThickness |
取得或設定控制區的邊框厚度。 |
| BorderThicknessProperty |
識別 BorderThickness 依賴性質。 |
| CacheMode |
取得或設定一個值,表示渲染內容應盡可能以合成點陣圖形式快取。 (繼承來源 UIElement) |
| CanBeScrollAnchor |
取得或設定一個值,指示 UIElement 是否適合作為捲動錨定的候選對象。 (繼承來源 UIElement) |
| CanDrag |
取得或設定一個值,指示該元素是否能以拖放操作的方式被拖曳為資料。 (繼承來源 UIElement) |
| CenterPoint |
取得或設定元素的中心點,即旋轉或縮放發生的中心點。 會影響元素的渲染位置。 (繼承來源 UIElement) |
| CharacterSpacing |
取得或設定字元間的均勻間距,單位為 1/1000 的 em。 |
| CharacterSpacingProperty |
識別 CharacterSpacing 依賴屬性。 |
| Clip |
取得或設定用於定義 UIElement 內容輪廓的矩形幾何。 (繼承來源 UIElement) |
| CompositeMode |
取得或設定一個屬性,宣告該元素在其父版面配置與視窗中的替代合成與混合模式。 這對於涉及混合 XAML / Microsoft DirectX UI 的元素非常重要。 (繼承來源 UIElement) |
| ContextFlyout |
取得或設定與此元素相關的飛出。 (繼承來源 UIElement) |
| CornerRadius |
取得或設定控制點邊界角落的半徑。 |
| CornerRadiusProperty |
識別 CornerRadius 依賴性屬性。 |
| DataContext |
取得或設定 FrameworkElement 的資料上下文。 資料上下文的常見用途是 a |
| DefaultStyleKey |
取得或設定指向該控制項預設風格的鍵。 自訂控制項的作者會利用這個屬性來更改他們控制項所用風格的預設值。 |
| DefaultStyleKeyProperty |
識別 DefaultStyleKey 相依屬性。 |
| DefaultStyleResourceUri |
取得或設定包含控制項預設樣式的資源檔案路徑。 |
| DefaultStyleResourceUriProperty |
識別 DefaultStyleResourceUri 依賴屬性。 |
| DesiredSize |
取得該 UIElement 在佈局過程的測度通過時計算出的大小。 (繼承來源 UIElement) |
| Dispatcher |
它總是在 Windows App SDK 應用程式中回傳 |
| DispatcherQueue |
得到 |
| ElementSoundMode |
取得或設定一個值,指定控制項偏好是否播放聲音。 |
| ElementSoundModeProperty |
識別 ElementSoundMode 相依屬性。 |
| ExitDisplayModeOnAccessKeyInvoked |
取得或設定一個值,指定在呼叫存取鍵時是否會關閉存取鍵顯示。 (繼承來源 UIElement) |
| FlowDirection |
它設定文字及其他 UI 元素在任何控制其版面配置的父元素內流動的方向。 此屬性可設定為或 |
| FocusState |
會得到一個值,指定此控制是否具備對焦功能,以及取得對焦的方式。 (繼承來源 UIElement) |
| FocusVisualMargin |
取得或設定 FrameworkElement 焦點視覺化的外圍。 (繼承來源 FrameworkElement) |
| FocusVisualPrimaryBrush |
取得或設定用來繪製框架元素外邊界 |
| FocusVisualPrimaryThickness |
取得或設定框架元素外層邊界 |
| FocusVisualSecondaryBrush |
取得或設定用來繪製框架元素內邊界 |
| FocusVisualSecondaryThickness |
取得或設定框架元素內邊界 |
| FontFamily |
取得或設定用於控制項中顯示文字的字型。 |
| FontFamilyProperty |
識別 FontFamily 依賴屬性。 |
| FontSize |
在此控制項中取得或設定文字大小。 |
| FontSizeProperty |
識別 FontSize 依賴屬性。 |
| FontStretch |
決定字體在螢幕上的濃縮或擴展程度。 |
| FontStretchProperty |
識別 FontStretch 依賴性屬性。 |
| FontStyle |
取得或設定文字呈現的樣式。 |
| FontStyleProperty |
識別 FontStyle 依賴屬性。 |
| FontWeight |
取得或設定指定字型的粗細。 |
| FontWeightProperty |
識別 FontWeight 依賴屬性。 |
| Foreground |
取得或設定一筆筆來描述前景色。 |
| ForegroundProperty |
識別 前景依賴性質 。 |
| Height |
取得或設定 FrameworkElement 的建議高度。 (繼承來源 FrameworkElement) |
| HighContrastAdjustment |
取得或設定一個值,指示框架在啟用高對比主題時是否自動調整元素的視覺屬性。 (繼承來源 UIElement) |
| HorizontalAlignment |
取得或設定在 FrameworkElement 組合於版面父元件(如面板或項目控制項)時套用的水平對齊特性。 (繼承來源 FrameworkElement) |
| HorizontalContentAlignment |
取得或設定控制項內容的水平對齊。 |
| HorizontalContentAlignmentProperty |
識別 HorizontalContentAlignment 依賴屬性。 |
| IsAccessKeyScope |
取得或設定一個值,指示元素是否定義其存取鍵作用域。 (繼承來源 UIElement) |
| IsDoubleTapEnabled |
取得或設定一個值,決定 DoubleTapped 事件是否能從該元素產生。 (繼承來源 UIElement) |
| IsEnabled |
取得或設定一個值,指示使用者是否能與控制項互動。 |
| IsEnabledProperty |
識別 IsEnable 依賴屬性。 |
| IsFocusEngaged |
設定一個值,表示使用者按下遊戲控制器的 A/Select 鍵時,焦點是否被限制在控制鍵上。 |
| IsFocusEngagedProperty |
識別 IsFocusEngaged 相依屬性。 |
| IsFocusEngagementEnabled |
取得或設定一個值,指示使用者按下遊戲控制器的 A/Select 鍵時,焦點是否能被限制在控制鍵上。 |
| IsFocusEngagementEnabledProperty |
識別 IsFocusEngagementEnabled 相依屬性。 |
| IsHitTestVisible |
取得或設定此 UIElement 所包含區域是否能回傳真實值以進行命中測試。 (繼承來源 UIElement) |
| IsHoldingEnabled |
取得或設定一個值,決定 持有事件是否 能從該元素產生。 (繼承來源 UIElement) |
| IsLoaded |
會得到一個值,表示該元素是否已被加入元素樹並準備好進行互動。 (繼承來源 FrameworkElement) |
| IsRightTapEnabled |
取得或設定一個值,決定 RightTapped 事件是否能從該元素產生。 (繼承來源 UIElement) |
| IsTabStop |
取得或設定一個值,指示分頁導覽中是否包含某個控制項。 (繼承來源 UIElement) |
| IsTapEnabled |
取得或設定一個值,決定 Tapped 事件是否能從該元素產生。 (繼承來源 UIElement) |
| IsTemplateFocusTargetProperty |
識別 Control.IsTemplateFocusTarget XAML attached 屬性。 |
| IsTemplateKeyTipTargetProperty |
識別 Control.IsTemplateKeyTipTarget XAML 附加屬性。 |
| IsTextScaleFactorEnabled |
取得或設定是否啟用自動文字放大(反映系統文字大小設定)。 |
| IsTextScaleFactorEnabledProperty |
識別 IsTextScaleFactorEnabled 相依性屬性。 |
| KeyboardAcceleratorPlacementMode |
取得或設定一個值,指示控制 工具提示是否顯示 其對應鍵盤加速器的按鍵組合。 (繼承來源 UIElement) |
| KeyboardAcceleratorPlacementTarget |
取得或設定一個值,指示顯示加速器按鍵組合的控制 工具提示 。 (繼承來源 UIElement) |
| KeyboardAccelerators |
取得一組按鍵組合,用鍵盤觸發動作。 加速器通常分配給按鈕或選單項目。
|
| KeyTipHorizontalOffset |
取得或設定一個值,表示鍵尖相對於 UIElement 的位置有多左或多右。 (繼承來源 UIElement) |
| KeyTipPlacementMode |
取得或設定一個值,指示存取鍵提示相對於 UIElement 邊界的位置。 (繼承來源 UIElement) |
| KeyTipTarget |
取得或設定一個值,指示存取鍵提示所鎖定的元素。 (繼承來源 UIElement) |
| KeyTipVerticalOffset |
它會取得或設定一個值,表示鍵尖相對於 UI 元素的上下位置。 (繼承來源 UIElement) |
| Language |
取得或設定適用於 FrameworkElement 的本地化/全球化語言資訊,同時也適用於物件表示法和 UI 中目前 FrameworkElement 的所有子元素。 (繼承來源 FrameworkElement) |
| Lights |
會讓 XamlLight 物件集合附加到這個元素上。 (繼承來源 UIElement) |
| ManipulationMode |
取得或設定用於 UIElement 行為及手勢互動的 ManipulationModes 值。 設定此值後,能在應用程式程式碼中處理該元素的操作事件。 (繼承來源 UIElement) |
| Margin |
取得或設定 FrameworkElement 的外緣。 (繼承來源 FrameworkElement) |
| MaxHeight |
取得或設定 FrameworkElement 的最大高度限制。 (繼承來源 FrameworkElement) |
| MaxWidth |
取得或設定 FrameworkElement 的最大寬度限制。 (繼承來源 FrameworkElement) |
| MinHeight |
取得或設定 FrameworkElement 的最小高度限制。 (繼承來源 FrameworkElement) |
| MinWidth |
取得或設定 FrameworkElement 的最小寬度限制。 (繼承來源 FrameworkElement) |
| Name |
取得或設定物件的識別名稱。 當 XAML 處理器從 XAML 標記建立物件樹時,執行時程式碼可以以此名稱來指稱 XAML 宣告的物件。 (繼承來源 FrameworkElement) |
| Opacity |
取得或設定物件不透明度的度數。 (繼承來源 UIElement) |
| OpacityTransition |
取得或設定 ScalarTransition,用來動畫化 Opacity 屬性的變更。 (繼承來源 UIElement) |
| Padding |
在控制區內取得或設定填充物。 |
| PaddingProperty |
識別 Padding 依賴性質。 |
| Parent |
取得物件樹中 FrameworkElement 的父物件。 (繼承來源 FrameworkElement) |
| PointerCaptures |
取得所有捕獲指標的集合,以 指標 值表示。 (繼承來源 UIElement) |
| Projection |
在渲染這個元素時,會取得或設定投影(3D 效果)來套用。 (繼承來源 UIElement) |
| ProtectedCursor |
取得或設定游標,當指標位於此元素上時會顯示。 預設為 null,表示游標沒有變化。 (繼承來源 UIElement) |
| RasterizationScale |
會獲得一個代表額外比例因子的值,用於渲染形狀、影像、文字或媒體,通常是為了渲染比一般解析度更高的解析度。 (繼承來源 UIElement) |
| RenderSize |
會取得 UIElement 的最終渲染大小。 不建議使用此,詳見備註。 (繼承來源 UIElement) |
| RenderTransform |
取得或設定影響 UIElement 渲染位置的轉換資訊。 (繼承來源 UIElement) |
| RenderTransformOrigin |
取得或設定 RenderTransform 宣告的任何可能渲染轉換的起點,相對於 UIElement 的界限。 (繼承來源 UIElement) |
| RequestedTheme |
取得或設定 UI 主題,該主題由 UIElement (及其子元素)用於資源判定。 你指定的 |
| RequiresPointer |
可設定或設定 UI 元素是否支援滑鼠模式,模擬與非指標輸入裝置(如鍵盤或遊戲控制器)的指標互動體驗。 |
| RequiresPointerProperty |
識別 RequiresPointer 依賴屬性。 |
| Resources |
取得本地定義的資源字典。 在 XAML 中,你可以透過 XAML 隱含的集合語法,將資源項目建立為屬性元素的 |
| Rotation |
設定順時針旋轉的角度,以度數為單位。 相對於旋轉軸和中心點旋轉。 會影響元素的渲染位置。 (繼承來源 UIElement) |
| RotationAxis |
讓軸線旋轉元素。 (繼承來源 UIElement) |
| RotationTransition |
取得或設定 ScalarTransition,讓 Rotation 屬性的變化動畫化。 (繼承來源 UIElement) |
| Scale |
取得或設定元素的比例。 相對於元素的中心點進行縮放。 會影響元素的渲染位置。 (繼承來源 UIElement) |
| ScaleTransition |
取得或設定 Vector3Transition,用來動畫化 Scale 屬性的變更。 (繼承來源 UIElement) |
| Shadow |
取得或設定 元素所轉換的陰影效果。 (繼承來源 UIElement) |
| Style |
在版面設計和渲染過程中,會取得或設定一個實例樣 式 ,應用於該物件。 (繼承來源 FrameworkElement) |
| TabFocusNavigation |
取得或設定一個值,改變 tab 鍵和 TabIndex 對此控制項的運作方式。 (繼承來源 UIElement) |
| TabIndex |
取得或設定一個值,決定使用者使用 Tab 鍵在控制項中移動時,元素獲得焦點的順序。 (繼承來源 UIElement) |
| TabNavigation |
取得或設定一個值,改變 Tab 鍵和 UIElement.TabIndex 對此控制項的運作方式。 Note 在Windows 10 Creators Update(建置版 10.0.15063)及更新版本中,UIElement 基底類別中可使用 TabFocusNavigation 屬性,以包含不使用 ControlTemplate 的物件。 |
| TabNavigationProperty |
識別 TabNavigation 相依屬性。 |
| Tag |
取得或設定一個任意物件值,可用來儲存該物件的自訂資訊。 (繼承來源 FrameworkElement) |
| Template |
取得或設定控制範本。 控制範本定義了使用者介面中控制項的視覺外觀,並以 XAML 標記方式定義。 |
| TemplateProperty |
識別 範本 相依屬性。 |
| Transform3D |
在渲染這個元素時,會取得或設定 3D 轉換效果套用。 (繼承來源 UIElement) |
| TransformMatrix |
取得或設定轉換矩陣以套用到元素。 (繼承來源 UIElement) |
| Transitions |
取得或設定適用於 UIElement 的 Transition 風格元素集合。 (繼承來源 UIElement) |
| Translation |
取得或設定元素的 x、y 和 z 渲染位置。 (繼承來源 UIElement) |
| TranslationTransition |
取得或設定 Vector3Transition,用來動畫化 Translation 屬性的變更。 (繼承來源 UIElement) |
| Triggers |
取得為 FrameworkElement 定義的動畫觸發器集合。 不常用。 請參閱備註。 (繼承來源 FrameworkElement) |
| UseLayoutRounding |
取得或設定一個值,決定物件及其視覺子樹的渲染是否應該使用捨入行為,使渲染對齊到整像素。 (繼承來源 UIElement) |
| UseSystemFocusVisuals |
取得或設定一個值,指示控制使用系統繪製的焦點視覺化,還是控制模板中定義的焦點視覺化。 (繼承來源 UIElement) |
| VerticalAlignment |
取得或設定當 FrameworkElement 被組合在父物件(如面板或項目控制項)時,套用到的垂直對齊特性。 (繼承來源 FrameworkElement) |
| VerticalContentAlignment |
取得或設定控制項內容的垂直對齊。 |
| VerticalContentAlignmentProperty |
識別 VerticalContentAlignment 依賴屬性。 |
| Visibility |
取得或設定 UIElement 的可見性。 不可見的 A |
| Width |
取得或設定 FrameworkElement 的寬度。 (繼承來源 FrameworkElement) |
| XamlRoot |
取得或設定 |
| XYFocusDown |
當使用者按下遊戲控制器的方向鍵(方向鍵)時,會取得或設定該物件被聚焦的目標。 (繼承來源 UIElement) |
| XYFocusDownNavigationStrategy |
取得或設定一個值,指定用以決定下行導覽目標元素的策略。 (繼承來源 UIElement) |
| XYFocusKeyboardNavigation |
取得或設定一個值,使鍵盤方向鍵導覽啟用或停用。 (繼承來源 UIElement) |
| XYFocusLeft |
當使用者按下遊戲控制器方向鍵(D-pad)左鍵時,會取得或設定該物件被聚焦。 (繼承來源 UIElement) |
| XYFocusLeftNavigationStrategy |
取得或設定一個值,指定用來決定左邊導航目標元素的策略。 (繼承來源 UIElement) |
| XYFocusRight |
當使用者按下遊戲控制器方向鍵(方向鍵)時,該物件會被聚焦。 (繼承來源 UIElement) |
| XYFocusRightNavigationStrategy |
取得或設定一個值,指定用以決定右向導航目標元素的策略。 (繼承來源 UIElement) |
| XYFocusUp |
當使用者按下遊戲控制器的方向鍵(D-pad)時,會取得或設定該物件會被聚焦。 (繼承來源 UIElement) |
| XYFocusUpNavigationStrategy |
取得或設定一個值,指定用以決定上行導航目標元素的策略。 (繼承來源 UIElement) |
附加屬性
| 名稱 | Description |
|---|---|
| IsTemplateFocusTarget |
取得或設定一個值,指示該元素是否屬於控制範本中包含焦點視覺化的部分。 |
| IsTemplateKeyTipTarget |
取得或設定一個值,指示該元素是否是控制模板中放置鍵尖的部分。 |
方法
事件
| 名稱 | Description |
|---|---|
| AccessKeyDisplayDismissed |
當存取鑰匙不再顯示時會發生。 (繼承來源 UIElement) |
| AccessKeyDisplayRequested |
當使用者請求顯示存取金鑰時,會發生這種情況。 (繼承來源 UIElement) |
| AccessKeyInvoked |
當使用者完成一組存取金鑰序列時,會發生這種情況。 (繼承來源 UIElement) |
| ActualThemeChanged |
當 ActualTheme 房產價值變動時,會發生這種情況。 (繼承來源 FrameworkElement) |
| BringIntoViewRequested |
當 StartBringIntoView 被呼叫於此元素或其後代時,會發生此情況。 (繼承來源 UIElement) |
| CharacterReceived |
當輸入佇列接收到單一已組合好字元時,會發生這種情況。 (繼承來源 UIElement) |
| ContextCanceled |
當上下文輸入手勢繼續進入操作手勢時,會發生,以通知元素不應該開啟上下文飛出。 (繼承來源 UIElement) |
| ContextRequested |
當使用者完成上下文輸入手勢(例如右鍵點擊)時會發生。 (繼承來源 UIElement) |
| DataContextChanged |
當 FrameworkElement.DataContext 屬性的值改變時,會發生這種情況。 (繼承來源 FrameworkElement) |
| DoubleTapped |
當未處理的 DoubleTap 互動發生在本元件的命中測試區域時,會發生這種情況。 (繼承來源 UIElement) |
| DragEnter |
當輸入系統回報以該元素為目標的底層拖曳事件時,會發生這種情況。 (繼承來源 UIElement) |
| DragLeave |
當輸入系統回報以此元素為原點的底層拖曳事件時,會發生這種情況。 (繼承來源 UIElement) |
| DragOver |
當輸入系統回報一個底層拖曳事件,該元素為潛在的投放目標時發生。 (繼承來源 UIElement) |
| DragStarting |
當啟動拖曳操作時會發生。 (繼承來源 UIElement) |
| Drop |
當輸入系統回報一個底層丟棄事件,並將此元素作為丟棄目標時發生。 (繼承來源 UIElement) |
| DropCompleted |
當以此元素為來源的拖放操作結束時,會發生此現象。 (繼承來源 UIElement) |
| EffectiveViewportChanged |
當 FrameworkElement的有效視口 改變時,會發生這種情況。 (繼承來源 FrameworkElement) |
| FocusDisengaged |
當使用者按下遊戲控制器的 B/Back 鍵時,控制器上的焦點會被釋放。 |
| FocusEngaged |
當使用者按下遊戲控制器的 A/Select 鍵時,焦點被限制在控制器上時會發生。 |
| GettingFocus |
發生在 UIElement 獲得焦點之前。 這個事件會同步提高,以確保活動在進行時焦點不會被轉移。 (繼承來源 UIElement) |
| GotFocus |
當 UIElement 獲得焦點時會發生。 此事件會非同步啟動,因此焦點能在沸騰完成前再次移動。 (繼承來源 UIElement) |
| Holding |
當本元素的命中測試區域發生原本未處理的 Hold 互動時,會發生這種情況。 (繼承來源 UIElement) |
| IsEnabledChanged |
當 IsEnabled 屬性變更時會發生。 |
| KeyDown |
當 UIElement 正在對焦時按下鍵盤鍵時,會發生這種情況。 (繼承來源 UIElement) |
| KeyUp |
當 UIElement 正在對焦時放開鍵盤鍵時會發生。 (繼承來源 UIElement) |
| LayoutUpdated |
當視覺樹的配置改變時,會發生在與佈局相關的屬性改變值或其他會刷新佈局的動作時。 (繼承來源 FrameworkElement) |
| Loaded |
當 FrameworkElement 已被建構並加入物件樹,並準備進行互動時,會發生這種情況。 (繼承來源 FrameworkElement) |
| Loading |
當 FrameworkElement 開始載入時會發生。 (繼承來源 FrameworkElement) |
| LosingFocus |
發生在 UIElement 失去焦點之前。 這個事件會同步提高,以確保活動在進行時焦點不會被轉移。 (繼承來源 UIElement) |
| LostFocus |
當 UIElement 失去焦點時會發生。 此事件會非同步啟動,因此焦點能在沸騰完成前再次移動。 (繼承來源 UIElement) |
| ManipulationCompleted |
當對 UIElement 進行操作完成時,會發生。 (繼承來源 UIElement) |
| ManipulationDelta |
當輸入裝置在操作期間變更位置時發生。 (繼承來源 UIElement) |
| ManipulationInertiaStarting |
當輸入裝置在操作過程中失去與 UIElement 物件的接觸,導致慣性開始時,會發生這種情況。 (繼承來源 UIElement) |
| ManipulationStarted |
當輸入裝置開始對 UIElement 進行操作時,會發生這種情況。 (繼承來源 UIElement) |
| ManipulationStarting |
第一次建立操作處理器時發生。 (繼承來源 UIElement) |
| NoFocusCandidateFound |
當使用者嘗試移動焦點(透過 Tab 鍵或方向箭頭)但焦點無法移動,因為該方向找不到焦點候選時,會發生這種情況。 (繼承來源 UIElement) |
| PointerCanceled |
當一個曾經接觸到的指標異常失去接觸時,就會發生這種情況。 (繼承來源 UIElement) |
| PointerCaptureLost |
當該元素先前持有的指標捕獲移至其他元素或其他位置時,會發生此現象。 (繼承來源 UIElement) |
| PointerEntered |
當指標進入該元素的命中測試區域時發生。 (繼承來源 UIElement) |
| PointerExited |
當指標離開該元素的命中測試區域時,會發生。 (繼承來源 UIElement) |
| PointerMoved |
當指標移動時,指標仍停留在該元素的命中測試區域內。 (繼承來源 UIElement) |
| PointerPressed |
當指標裝置在此元素內啟動 按鍵 動作時,會發生這種情況。 (繼承來源 UIElement) |
| PointerReleased |
當先前發起 新聞 行動的指標裝置在此元素內被釋放時,會發生這種情況。 請注意, 新聞行動 結束時不保證觸發 |
| PointerWheelChanged |
當指標輪的 delta 值改變時,會發生這種情況。 (繼承來源 UIElement) |
| PreviewKeyDown |
當 UIElement 正在對焦時按下鍵盤鍵時,會發生這種情況。 (繼承來源 UIElement) |
| PreviewKeyUp |
當 UIElement 正在對焦時放開鍵盤鍵時會發生。 (繼承來源 UIElement) |
| ProcessKeyboardAccelerators |
當按下 鍵盤快捷鍵(或加速器) 時會發生。 (繼承來源 UIElement) |
| RightTapped |
當指標正好在元素上方時,右鍵輸入刺激發生。 (繼承來源 UIElement) |
| SizeChanged |
當 ActualHeight 或 ActualWidth 屬性在 FrameworkElement 上的值改變時,會發生這種情況。 (繼承來源 FrameworkElement) |
| Tapped |
當未處理的 Tap 互動發生在該元件的命中測試區域時。 (繼承來源 UIElement) |
| Unloaded |
當該物件不再連接到主物件樹時,會發生這種情況。 (繼承來源 FrameworkElement) |