я начинаю с Windows 8 C# XAML user and custom controls sample и переместили файлыИспользование стиля от другого узла в приложении Metro
Themes/Generic.xaml
BasicCustomControl.cs
BasicUserControl.xaml
BasicUserControl.xaml.cs
ImageWithLabelControl.cs
в библиотеку метро класса с именем Controls
, ссылаться на него в проекте UserAndCustomControls
и исправить local:...
ссылки xmlns:local="using:Controls"
. Это отлично работает.
НО если создать словарь ресурсов "Style.xaml"
в библиотеке классов с
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Controls">
<Color x:Key="ColorBackground">Red</Color>
</ResourceDictionary>
и включить в файл ScenarioList.xaml
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Controls;component/Style.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
я получаю сообщение об ошибке во время выполнения
XamlParseException
Failed to assign to property 'Windows.UI.Xaml.ResourceDictionary.Source'.
если я попробую применить цвет к сетке
<Grid>
<Grid.Background>
<SolidColorBrush Color="{StaticResource ColorBackground}" />
</Grid.Background>
<ListBox x:Name="Scenarios" ...
[...]
</Grid>
[Q] Вопрос в том, как я правильно объявить, ссылки и использовать внешний стиль в приложении Metro? Моя идея заключается в создании многоразовых элементов управления и общих стилей, поставляемых как один файл dll.
У меня нет отдельной библиотеки DLL для словаря Resorce, но у меня она есть в папке «Common» в том же .csproj, и я включаю этот путь как « ' в App.xaml. Но, я все еще получаю ту же ошибку ??? –
Этот ответ работает, но очень важно отметить, что он не будет, если имя вашей ссылочной сборки содержит пробелы или точки и, возможно, другие не буквенно-цифровые символы. Это ошибка в Visual Studio 2012, которая почти загнала меня в орехи, пока я не попробовал другое название проекта для библиотеки –