Проблема стилей ресурсов приложения (с Prism) - PullRequest
1 голос
/ 22 марта 2012

У меня в приложении куча красных кнопок, поэтому вместо определения стилей для этого я поместил это в свой App.xaml

<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?

Редактировать: Это приложение Prism, имеющее 3 основных проекта.

  • Оболочка - содержит ссылкудля OrderModule и инфраструктуры
  • OrderModule - содержит ссылку на инфраструктуру
  • Инфраструктура

UserControl с кнопкой, которую я пытаюсь выполнитьиспользовать стиль включен в проекте OrderModule. Я собираюсь попытаться создать словарь ресурсов в проекте инфраструктуры и интегрировать его с App.xaml (что-то вроде удара в темноте)

Ошибка на первой кнопке, которая не использует BasedOn.InnerException -

Не удается найти ресурс с именем RedButton.Имена ресурсов чувствительны к регистру.

1 Ответ

1 голос
/ 22 марта 2012

Существует еще одно распространенное место, которое WPF использует для поиска стилей и шаблонов, и это словарь ресурсов Generic.xaml в папке Темы в корневом каталоге проекта. Я бы создал эту папку в OrderModule или Infrastructure и определил там стиль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...