По крайней мере, я думаю, что это проблема...
У меня есть проект, структурированный так (файлы опущены для краткости)
Project
Assets
ResourceDictionaries
Styles.xaml
MainWindow.xaml
Я ссылаюсь на словарь ресурсов следующим образом в MainWindow.xaml
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/ResourceDictionaries/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
<Window.Resources/>
Но ни один из стилей не применяется ни к каким элементам.
Я проверил, что для действия сборки установлено значение page. Я также пытался присвоить некоторым стилям в словаре ключ, но Blend не может «видеть» эти ключи.
Что я делаю не так?
Изменить: Соответствующий код. Очевидно, что если я помещу свойства в фактические элементы, они будут работать, но в словаре они не работают:
MainWindowStyles.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Company.Client.Assets.ResourceDictionaries"
xmlns:wpf="http://schemas.syncfusion.com/wpf">
<Style TargetType="{x:Type wpf:RibbonWindow}">
<Setter Property="wpf:SkinStorage.VisualStyle" Value="Office2010Silver"/>
</Style>
<Style TargetType="{x:Type wpf:Ribbon}">
<Setter Property="BackStageColor" Value="#622166"/>
</Style>
</ResourceDictionary>
MainWindow.xaml
<wpf:RibbonWindow x:Class="Company.Client.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:wpf="http://schemas.syncfusion.com/wpf"
xmlns:local="clr-namespace:Company.Client"
mc:Ignorable="d"
Title="MainWindow" Height="600" Width="800">
<wpf:RibbonWindow.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/ResourceDictionaries/MainWindowStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</wpf:RibbonWindow.Resources>
<Grid>
<wpf:Ribbon BackStageHeader="DB">
<wpf:Ribbon.BackStage>
<wpf:Backstage>
<wpf:BackStageCommandButton Header="Save"/>
</wpf:Backstage>
</wpf:Ribbon.BackStage>
</wpf:Ribbon>
</Grid>
</wpf:RibbonWindow>
Изменить 2. Это то, что было опробовано до сих пор:
- Пробовал применять стили к обычным элементам управления (кнопка, метка и т. д.). Работает
- Пробовал добавлять стили под
<wpf:MainWindow.Resources>
. Не работает - Пробовал пакетный URI. Не работает
- Добавление стилей/свойств к фактическим элементам. Работает (очевидно)
<MainWindow.Resources>
, стили не применяются. - person Jake   schedule 11.01.2016