0

У меня есть шаблон для кнопок бокового меню, и я хочу добавить на кнопку иконку. Вот мой ControlTemplate^

    <ControlTemplate x:Key="SlideMenuButtons" TargetType="Button">
        <Grid x:Name="Btn" Height="45">
            <Border>
                <StackPanel Orientation="Horizontal">
                    <Image Source="{DynamicResource ResourceKey = Img}"/>
                </StackPanel>
            </Border>
        </Grid>
    </ControlTemplate>

А вот сама кнопка в StackPannel:

        <StackPanel Orientation="Vertical">
            <Button Template="{StaticResource ResourceKey=SlideMenuButtons}" Click="Button_Click"
                    Content="КНОПКА">
                <Button.Resources>
                    <ImageSource x:Key="Img">res/icons/personal_card.png</ImageSource>
                </Button.Resources>
        </StackPanel>

Если я правильно понял суть ошибки, то шаблон не сопоставляет имя ресурса Img c ключом x:Key="Img" в ImageSource.

Я уже прочитал множество информации по этой ошибке и чаще всего советуют закрыть-удалить в корне программы .vs-открыть проект и пересобрать. Не помогает, изменить имя пути к файлу тоже. Что ещё можно попробовать?

  • 2
    Не тем вы занимаетесь. 1. Картинки, в 22 году, это уже как-то плохо, ибо их полностью вытеснили векторы, которые и при масштабировании не теряют качество, и место занимают в разы меньше. 2. Иконка для кнопки - это не задача стиля, а задача контрола. Сделайте свой контрол, в котором будет свойство Icon например, а дальше просто пишите <MyButton Icon = "..." />. Вот, почитайте допустим это, по аналогии сможете сделать нужное вам. Ну а про ошибку, мне кажется тут дело в том, что нет ресурса Img до создания кнопки. Сделайте его глобальным. – EvgeniyZ Apr 27 '22 at 14:03

1 Answers1

0

Попробуй обновить XAML через кнопку обновить. введите сюда описание изображения