wpf介面設計 - 如何在Visual Studio中提取默認控件模板?



wpf介紹 (4)

我想知道如何使用Visual Studio提取(獲取副本)給定控件的默認模板。 我知道這可以通過Expression Blend(右擊控件,“編輯模板” - >“編輯副本...”)來完成,然後在我的Xaml中復制默認控件模板。 但這可以用Visual Studio完成嗎?


Answer #1

2015年更新,明確說明

在Visual Studio 2013中,您可以通過幾個簡單的步驟獲取ControlTemplate的默認ControlTemplate

  1. 在WPF設計器中,選擇相關控件,或將鼠標光標放在XAML中的相關控件上。

  2. F4打開“屬性”窗口。

  3. 打開“ 雜項”類別以查找“ 模板”屬性,或在窗口頂部的搜索字段中鍵入“ 模板 ”。

  4. 單擊Template字段右側的小方塊,然後選擇Convert to New Resource ...選項:

  1. 在彈出對話框中,命名要添加的新ControlTemplate並確定要在其中定義的位置:

  1. 單擊“ 確定”按鈕。

Answer #2

只是為了更新這個問題,在VS 11中,XAML設計器允許您像Expression Blend一樣執行此操作。


Answer #3

據我所知,這是不可能的。 但是,您可以使用“ 顯示模板”來查看給定控件的默認模板。


Answer #4

要記住的一件事是:如果您已經在某個地方定義了一個定位給定控件的樣式,那麼將禁用所有上述選項。 我的App.xaml文件中有以下代碼:

<Application.Resources>
    <Style TargetType="Button">
        <Setter Property="IsTabStop" Value="False"/>
    </Style>
</Application.Resources>

我拉著我的頭髮試圖找出為什麼“編輯副本......”和“轉換為新資源......”其他答案中描述的選項被禁用為我的Button(在一個完全不同的文件中定義) )。 我為Button註釋了上面的樣式代碼,突然兩個選項都沒有被禁用了。 故事的道德:如果代碼中的任何位置已存在該元素的樣式,VS將不會為您生成包含模板副本的樣式。





xaml