Silverlight: использование поля в ResourceDictionary - PullRequest
0 голосов
/ 20 июля 2011

Я пытаюсь сохранить значение маржи в поисковике.Примерно так:

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'.\ 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 голосов
/ 20 июля 2011

Если вы создаете словарь ресурсов в 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 namespace.

...