2012-01-28 154 views
8

我有一個應用程序,我使用XAML來表示自己的自定義對象圖。它與WPF/Silverlight對象模型完全不同(並且不用於UI設計),但可以用有意義的方式可視化對象圖。我想要做的是在Visual Studio中添加一個設計器擴展來可視化我的特定對象,但是我一直無法找到關於此主題的信息。有人能指出我的方向嗎?Visual Studio自定義XAML設計器

我的主要目標是對當前的XAML有一些簡單的視覺反饋;我還沒有到需要設計師支持可視化編輯的地步。如果有人好奇,它是模擬工業機器的工具;我使用XAML來定義機器的組件和它們的連接,但是我現在必須運行完整的模擬來查看機器的外觀。

回答

11

您需要創建一個解析文件並可視化內容的Visual Studio擴展(vsix)。您有兩個選項:Visual Studio 加載項或Visual Studio程序包(請參閱問題1139294中的差異的詳細信息)。第一個稍微容易一點,但後者會給你更多的控制權,所以如果你將來有編輯的話,我建議你使用 。

首先下載用於創建Visual Studio擴展的SDK,即Visual Studio 2010 SP1 SDK。對於較舊的非SP1版本,請點擊here

您需要熟悉創建Visual Studio包。 有關Microsoft教程,請參閱Walkthrough: Creating a VSPackage。 如果您按照教程進行操作,您應該擁有 通過菜單命令觸發自定義組件所需的一切。所以現在你真正需要的是一個例如 一個正常的WPF組件,可以解析/可視化您的自定義XAML。 您也可能需要將您的自定義文件類型與您的組件關聯。爲此,您需要一個ProvideEditorExtensionAttribute

沒有什麼比樣,因此請參閱samples libraryThe IDE Sample Editor。這創建了一個小文件編輯器自定義文件類型,這與您所問的內容很接近。用你的編輯器替換文件編輯器組件和相關的文件類型,你就快完成了!

+4

+1「你快完成了!」 – RQDQ 2012-01-31 18:14:42

+0

謝謝,這確實有助於我指出正確的方向。我的情況稍有不同(因爲我沒有自定義文件格式;它仍然是一個* .xaml擴展名,並且仍然編譯爲一個類,帶有支持代碼文件,就像任何其他xaml類一樣)。但是,這仍然是相當有用。 – 2012-02-04 14:36:32

+0

是的,有趣的是 - 在Silverlight項目中,VS知道要以.xaml的方式呈現,並且在WPF項目中,VS知道以另一種方式呈現它 - 也許還有一些項目模板魔法可以指定「對於項目類型-x使用*這個*設計者爲xaml」等等...... – BrainSlugs83 2014-06-30 18:36:23

相關問題