2012-01-02 151 views
1

我試着閱讀關於標記擴展的MSDN文章,但是我找不到它們是什麼(本文討論它們的作用)。什麼是標記擴展?

我們是否需要標記擴展,以便XAML知道背後的代碼(否則無法訪問任何內置的類)?但是,我們怎樣才能訪問所有的控件類型?

我無法找到他們爲什麼需要標記擴展的明確解釋。如果我們可以直接訪問控制對象,爲什麼我們需要標記擴展來訪問綁定對象?

回答

4

標記擴展是不是訪問,但通過做任何你想要他們,如創建協會(Bindingx:Reference)擴展標記的功能(顧名思義),或者得到一個類(x:Type)的類型。

它們可以用於任何事情,只有在標記不足以滿足需求的情況下它們纔是必需的。

+1

我明白了。那麼我們也可以使用元素語法來編寫綁定,而不是使用標記擴展? – mihajlv 2012-01-02 21:51:29

+1

@mihajlv:當然,您可以在元素語法中編寫每個標記擴展,通常使用括號語法更方便。 – 2012-01-02 21:57:36

+0

我明白了,謝謝。 – mihajlv 2012-01-02 22:02:00

0

One way to describe Markup Extension is :

作爲XAML是基於其由於其簡單性可以更詳細簡單的XML語法,因此標記擴展的原因概念之一被引入。
標記擴展可以用於打開XAML的許多行成一個簡潔的表達

<TextBox > 
 
    <TextBox.Text>A text in TextBox</TextBox.Text> 
 
</TextBox> 
 

 
<TextBox Text="{x:Static system:Environment.UserName}" />

而這種後來的語法還提供了一種使用除文字串等的值(新的對象),例如我們的程序集中已經構建的對象或靜態對象。標記擴展是在運行時決定屬性如何設置的對象。