tags:

views:

44

answers:

1

Why should we use those, rather than ordinary ones?

what's the benefits of using this:

new Uri("pack://application:,,,/File.xaml");

over that:

new Uri("/File.xaml", UriKind.Relative);
+3  A: 

The first one - you can use cross-assembly by adding a assembly-name after the three commas. So, you can create a shared library with common styles and other XAML-goodness that can be shared between several assemblies.

Syntax is like this:

pack://application:,,,/Common;component/CommonResources.xaml

where Common is the name of the assembly and everything after component is the path inside that assembly to the mapped resource. The latter can only be used inside the same assembly (and should be preferred).

I use it a lot for ResourceDictionaries residing in a common assembly above several module-type assemblies.

Goblin
I still didn't get exactly what should be preferred rather what. Could you give me an example...
Ike
If the resource is in the same assembly -> choose the short syntax. If the resource is in another assembly -> choose the long syntax.
Goblin