Не работает стиль кнопки в ResourceDictionary

329
03 сентября 2017, 00:33
<ResourceDictionary
        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/interactivedesigner/2006"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d">
        <Style TargetType="{x:Type TabControl}">
            <Setter Property="Margin" Value="0,5" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TabControl}">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>
                            <Grid Grid.Row="0">
                                <Button Style="{StaticResource Button}"/>
                                <Button />
                            </Grid>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style TargetType="{x:Type TabItem}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="TabItem">
                        <Grid Name="xGrid">
                            <Border>
                                <ContentPresenter/>
                            </Border>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="Button" TargetType="{x:Type Button}">
            <Setter Property="Background" Value="#FF000000" />
        </Style>
</ResourceDictionary>

Ребят, помогите решить задачку. Есть ResourceDictionary (содержание см. выше). Это отдельный файл. В App.xaml все подключено, все нормально.

Проблема заключается в следующем. Если в ResourceDictionary прописать стиль Button (<Button Style="{StaticResource Button}"/>), то проект не запускается и не выводит ошибки, нет так же исключений. VS выдает только сообщение:

А если без стиля у Button (<Button />), то все хорошо.

В чем может быть проблема?

EDIT #1:

App.xaml:

<Application x:Class="WpfApp1.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:WpfApp1"
             StartupUri="View\MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Styles.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

EDIT #2:

MainWindow.xaml:

<Window
    x:Class="WpfApp1.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:local="clr-namespace:WpfApp1"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    Width="525"
    Height="350"
    AllowsTransparency="True"
    Background="Transparent"
    WindowStyle="None"
    mc:Ignorable="d">
            <Grid>
                <TabControl>
                    <TabItem Header="jhb">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="*" />
                                <RowDefinition Height="Auto" />
                            </Grid.RowDefinitions>
                        </Grid>
                    </TabItem>
                    <TabItem Header="TabItem" />
                    <TabItem Header="TabItem" />
                    <TabItem Header="TabItem" />
                    <TabItem Header="TabItem" />
                    <TabItem Header="TabItem" />
                    <TabItem Header="TabItem" />
                    <TabItem Header="TabItem" />
                    <TabItem Header="TabItem" />
                    <TabItem Header="TabItem" />
                    <TabItem Header="TabItem" />
                </TabControl>
            </Grid>
  </Window>
READ ALSO
Telegram.bot InlineKeyboardMarkup exception

Telegram.bot InlineKeyboardMarkup exception

Если два раза быстро нажать на кнопку созданую через InlineKeyboardMarkup, то вылетает ExceptionЕсли ожидать ответа, то все работает отлично

585
Работа с текстом,C#

Работа с текстом,C#

Есть примерно следующая строка:

428
WPF: Не меняется фон кнопки, когда меняю IsEnabled = false

WPF: Не меняется фон кнопки, когда меняю IsEnabled = false

Поскольку в WPF так просто менять фон нельзя при установки IsEnabled = false у кнопки, то я сделал свой Стиль и изменил шаблон и указал начальные сеттеры:...

422
Как получить имя переменной в виде строки?

Как получить имя переменной в виде строки?

Не значение переменной, а именно её имя

369