У меня есть куча красных кнопок в моем приложении, поэтому вместо определения стилей повсюду, что я поместил это в моем App.xamlПрименение стилей ресурсов проблема (с Prism)
<Application.Resources>
<Style x:Key="RedButton" TargetType="{x:Type Button}">
<Setter Property="Background" Value="#FF830722" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontWeight" Value="Bold" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</Application.Resources>
Мне нужно отключить некоторые красные кнопки в приложении через привязку данных. Кажется, он отображается правильно в режиме просмотра.
<Button Style="{StaticResource RedButton}" Content="Search" Height="23" HorizontalAlignment="Left" Margin="449,13,0,0" Name="searchButton" VerticalAlignment="Top" Width="75" Click="searchButton_Click" />
<Button Content="Add Item(s)" Margin="0,0,12,12" Name="addProductButton" Height="23" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="108" Click="addProductButton_Click">
<Button.Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource RedButton}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=searchDataGrid, Path=SelectedIndex}" Value="-1">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
При запуске приложения я получаю сообщение об ошибке:
'Обеспечить значение на 'System.Windows.StaticResourceExtension' бросил исключение. Номер строки «25» и позиция линии «140».
Я предполагаю, что у него проблемы с поиском StaticResource. Нужно ли добавлять xmlns?
Редактировать: Это приложение призмы, которое имеет 3 основных проекта.
- Shell - имеет отношение к OrderModule и инфраструктуры
- OrderModule - имеет отношение к инфраструктуре
- Инфраструктура
UserControl, который имеет кнопку I» m, пытающийся использовать стиль, находится в проекте OrderModule. Я собираюсь попытаться создать словарь ресурсов в проекте инфраструктуры и интегрировать его с App.xaml (вроде выстрела в темноте)
It ошибки на первой кнопке, которая не использует BasedOn. InnerException is
Не удается найти ресурс с именем RedButton. Названия ресурсов - это случай чувствительный.
Ваш код работает в моем окружении. Можете ли вы попытаться предоставить FallbackValue в своем Binding и сообщить, если он вносит какие-либо изменения? – Markus
спасибо за ваши уточнения, я удалил свой ответ, поскольку он больше не используется, но я думаю, что это определенно идет в правильном направлении, WPF, очевидно, имеет проблемы с загрузкой стиля в данный момент, и ваша архитектура, вероятно, по крайней мере частично проблемы, как я вижу. – David