«MenuButton» TargetType не соответствует типу элемента «Кнопка»

UserControl имеет кнопку с Style = "{StaticResource MenuIconByttonStyle}", определенную в App.xaml, но использование этого UserControl в окне xaml дает ошибку:

'MenuButton' TargetType does not match type of element 'Button'

Не уверен, на что ссылается MenuButton, так как я нигде не могу найти это определение. Если я использую StaticResource MenuIconButtonStyle2 или FlatToolbarButton, я не получаю эту ошибку.

Почему это может быть?

Приложение.xaml:

<Application.Resources>
    <Style x:Key = "FlatToolbarButton" TargetType = "Button">
        <Setter Property = "Width" Value = "16"/>
        <Setter Property = "Height" Value = "16"/>
        <Setter Property = "BorderThickness" Value = "0"/>
        <Setter Property = "BorderBrush" Value = "{x:Null}"/>
        <Setter Property = "Padding" Value = "0"/>
        <Setter Property = "Margin" Value = "0"/>

    </Style>

    <Style x:Key = "MenuIconButtonStyle" TargetType = "Button" BasedOn = "{StaticResource FlatToolbarButton}" >
            <Setter Property = "Background" Value = "Red"/>
            <Setter Property = "Foreground" Value = "Red"/>
            <Setter Property = "Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Grid Background = "#333333">
                            <Border CornerRadius = "0" BorderThickness = "0" BorderBrush = "#333333">
                                <Image  Source = "{StaticResource MenuIcon}" Stretch = "UniformToFill"/> 
                            </Border>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property = "IsMouseOver" Value = "True">
                    <Setter Property = "Cursor" Value = "Hand"/>
                    <Setter Property = "Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Grid Background = "Aqua">
                                    <Border CornerRadius = "0" BorderThickness = "1" BorderBrush = "Aqua">
                                        <Image  Source = "{StaticResource MenuIcon}" Stretch = "UniformToFill"/>
                                    </Border>
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>


        <Style x:Key = "MenuIconButtonStyle2" TargetType = "Button" BasedOn = "{StaticResource FlatToolbarButton}" >
            <Setter Property = "Background" Value = "{StaticResource  MenuIconBrush}"/> 
        </Style>

TradeListUC.xaml:

   <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height = "18"/>
        <RowDefinition Height = "*"/>
    </Grid.RowDefinitions>

    <DockPanel  Grid.Row = "0" Background = "#333333"  >

        <Label x:Name = "TitleLabel" FontSize = "12" Content = "Trade List" Height = "16" Width = "100" 
               VerticalAlignment = "Top" Padding = "4,0,0,0" Foreground = "White"   />
        <StackPanel  DockPanel.Dock = "Right"   HorizontalAlignment = "Right" Orientation = "Horizontal"   >
            <TextBox x:Name = "SymbolEntryTb" Width = "100" Margin = "0,0,1,0"  
                     Background = "#999999" BorderBrush = "#AAAAAA" 
                     HorizontalAlignment = "Right"    Padding = "0,-1,0,0" />
            <Button x:Name = "MenuBtn" Style = "{StaticResource MenuIconButtonStyle}">

            </Button>
        </StackPanel>
    </DockPanel>

MainWindow.xaml:

 <TabItem Header = "Trades">
      <Grid>
         <UC:TradeListUC/>
      </Grid>
 </TabItem>

Что произойдет, если вы добавите TargetType к ControlTemplate?

grek40 28.02.2019 23:40

@grek40 Без разницы. Но только что узнал, что переименование ключа стиля во что-то отличное от MenuIconButtonStyle заставило ошибку исчезнуть. Очень странно..

bretddog 01.03.2019 00:06

Вы должны очистить свое решение от всех сгенерированных файлов (полного перестроения недостаточно). Но, возможно, MenuIconButtonStyle уже используется где-то во фреймворке. Когда простое переименование решает все, возможностей много. Возможно, я смогу повторить это позже, но не сейчас.

grek40 01.03.2019 07:42

@grek40 Чистое решение не имело значения. Других ссылок на это имя я не нашел. Не критично, так как он работает с другим именем.

bretddog 01.03.2019 10:22

@bretddog: У вас, вероятно, где-то определен другой MenuIconButtonStyle с другим TargetType. Найдите его в своем решении. Используете ли вы сторонние пакеты?

mm8 01.03.2019 16:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
217
0

Другие вопросы по теме