2012-09-10 29 views
8

在下面的每個默認WPF窗口中,有四個名稱空間被引用。 我知道:哪裏可以找到XAML命名空間d =「http://schemas.microsoft.com/expression/blend/2008」映射庫?

的xmlns = 「http://schemas.microsoft.com/winfx/2006/xaml/presentation」

的xmlns:X =「HTTP ://schemas.microsoft.com/winfx/2006/xaml「

是映射庫PresentationCore.dll和PresentationFramework.dll。但我在哪裏可以找到該庫文件映射命名空間

的xmlns:d = 「http://schemas.microsoft.com/expression/blend/2008」

xmlns:mc =「http://schemas.openxmlformats.org/markup-compatibility/2006」

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    Title="MainWindow" Height="350" Width="525"> 
    <Grid> 

    </Grid> 
</Window> 
+0

http://msdn.microsoft.com/en-us/library/cc189061%28v=vs.95%29.aspx - 檢查一下 - 它表示/ blend/2008僅用於設計器中並在運行時被忽略。 (這將意味着沒有映射?) – LukeP

+0

我也想知道這一點。我正嘗試在PowerShell中使用在Visual Studio中創建的UserControl,並且發現有關此命名空間的錯誤。 – Simon

+0

檢查我的答案在這裏.. [http://stackoverflow.com/questions/25508755/http-schemas-microsoft-com-winfx-2006-xaml-presentation-definition/34635758#34635758][1] – Moumit

回答

3

從我的理解中,「d」命名空間僅在您的代碼中啓用了設計器唯一屬性。這樣你就可以將諸如設計時間數據之類的東西添加到應用程序中並使其可混合。

的「MC」命名空間支持兼容性,通常上述的「d」的前綴配對與「MC:忽略」,它告訴編譯器忽略在運行時

+0

謝謝,我也從MSDN發現更多細節: –

4

幾乎正確的設計時元素。請在MSDN看到更多的細節:http://msdn.microsoft.com/en-us/library/cc189061(v=vs.95).aspx

d:(http://schemas.microsoft.com/expression/blend/2008

d:XAML命名空間是爲設計師的支持,在Microsoft Visual Studio和Microsoft的XAML設計表面特別設計器支持表達式混合。 XAML命名空間支持XAML元素的設計器屬性。這些設計屬性僅影響XAML行爲的設計方面。當Silverlight運行時由XAML分析器加載相同的XAML並運行應用程序時,設計器屬性將被忽略。通常,設計器屬性在任何XAML元素上都是有效的,但實際上只有某些情況下自己應用設計器屬性是適當的。

MC:(http://schemas.openxmlformats.org/markup-compatibility/2006

MC:指示,並支持用於讀取XAML標記兼容模式。通常,d:前綴與屬性mc:Ignorable關聯。如前所述,此技術使運行時XAML分析器能夠忽略設計屬性。

2

我不確定這個問題已經得到解答,但是我能夠在Visual Studio 2013 Ultimate Edition的本地機器上找到它。你可以在你的機器上某個程序集的程序集中找到所有類型(例如DataContextProperty或我正在查找的DesignInstanceExtension),其路徑如下所示:

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Blend \ Microsoft.Expression.Platform.dll

請注意,這可能會有所不同,具體取決於您使用的Visual Studio版本。我只是在報告「我的機器上運行的是什麼」。在機器範圍內搜索「Microsoft.Expression.Platform.dll」應該有所斬獲。

+0

好的發現@ Mike-EEE,但我無法在我的VS2017 RC安裝上找到類似的東西。我甚至連接到VS以查看哪些模塊已加載,並且我瀏覽了它們並找不到DesignInstanceExtension: -/ – Schneider

+0

Yikes @Schneider我還沒有敢於在RC軟件。你有沒有ReSharper Ultimate,偶然?如果您已連接到正在運行的VS進程,您可能能夠從內存中的所有加載的程序集中查找符號。確保Xaml的設計時間和設計器已經加載。也就是說,你可以看到一個Xaml設計師屏幕和一切。也許這些組件完全進入了一個新的組合? –

+0

是的我已經調試了XDesProc進程,並通過一些程序集,但找不到d:DesignContext(我認爲是一個Xaml標記擴展) – Schneider

相關問題