2011-07-20 25 views
0

我尝试在resourcedictionary中保存边距值。类似的东西:Silverlight:在ResourceDictionary中使用边距

的xmlns:systemwindows = “CLR-名称空间:System.Windows;装配= System.Windows.dll中”[...] 0,2,2,0

<systemwindows:Thickness x:Key="DefaultMarginThickness">0,2,2,0</systemwindows:Thickness> 

后来我应该可以做这样的事情:

<Style TargetType="TextBlock"> 
    <Setter Property="Margin" Value="{StaticResource DefaultMarginThickness}" /> 
</Style> 

但是当我编译的种源字典我得到:

错误1标签“厚度”的XML命名空间“CLR的命名空间不存在:S ystem.Windows;装配= System.Windows.dll中”。 \ XAML \ Style.Common.Values.xaml
错误2找不到类型'systemwindows:Thickness'。验证您是否缺少程序集引用,并且所有引用的程序集都已构建。 \ XAML \ Style.Common.Values.xaml

http://msdn.microsoft.com/en-us/library/system.windows.thickness%28v=vs.95%29.aspx你可以看到System.Windows应该是正确的命名空间。为什么他没有找到课堂厚度?

问候

回答

0

如果你用Visual Studio创建一个资源字典,默认的命名空间映射,这样你就不需要Thickness前的前缀:

<ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> 

    <Thickness x:Key="DefaultMarginThickness">0,2,2,0</Thickness> 
</ResourceDictionary> 

即URL "http://schemas.microsoft.com/winfx/2006/xaml/presentation"映射到系统.Windows命名空间。