Silverlight:在ResourceDictionary中使用保证金

时间:2011-07-20 09:25:24

标签: .net silverlight xaml resourcedictionary

我尝试在resourcedictionary中保存边距值。这样的事情:

xmlns:systemwindows =“clr-namespace:System.Windows; assembly = 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-namespace:System.Windows; assembly = System.Windows.dll'中不存在标记'Thickness'。 \ 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应该是正确的命名空间。为什么他没有找到班级厚度?

问候

1 个答案:

答案 0 :(得分: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"映射到System.Windows命名空间。