12
votes

In every default WPF window as below, there are four namespaces referenced. I know:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

and

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

are mapping library PresentationCore.dll and PresentationFramework.dll. But where can I find the library files mapping namespace

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

and

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>
3
msdn.microsoft.com/en-us/library/cc189061%28v=vs.95%29.aspx - check this out - It says that the expression/blend/2008 is only used in the designer and is ignored at runtime. (This would mean no mapping?)LukeP
Check my answer here.. [stackoverflow.com/questions/25508755/…Moumit

3 Answers

5
votes

Almost correct. Please see more details in MSDN: http://msdn.microsoft.com/en-us/library/cc189061(v=vs.95).aspx

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

The d: XAML namespace is intended for designer support, specifically designer support in the XAML design surfaces of Microsoft Visual Studio and Microsoft Expression Blend. The d: XAML namespace enables designer attributes on XAML elements. These designer attributes only affect the design aspects of how XAML behaves. The designer attributes are ignored when the same XAML is loaded by the XAML parser in the Silverlight run-time, and the application runs. Generally, the designer attributes are valid on any XAML element, but in practice there are only certain scenarios where applying a designer attribute yourself is appropriate.

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

mc: Indicates and supports a markup compatibility mode for reading XAML. Typically, the d: prefix is associated with the attribute mc:Ignorable. This technique enables run time XAML parsers to ignore the design attributes, as described previously.

3
votes

From my understanding, “d”namespace enables designer-only attributes in your code. This is so you can add stuff like design time data to your application and make it blendable.

The “mc” namespace supports compatibility and usually the “d”prefix mentioned above is paired with an “mc:ignorable” which tells the compiler to ignore the design time elements at runtime

3
votes

I am not sure this question has been answered yet, but I was able to find it on my local machine for Visual Studio 2013, Ultimate edition. You can find all the types (such as DataContextProperty or what I was looking for, DesignInstanceExtension) in an assembly somewhere on your machine with a path that looks like:

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

Please note that this may vary depending on the version of Visual Studio you are using. I am just reporting what "works on my machine." Doing a machine-wide search for "Microsoft.Expression.Platform.dll" should do the trick.