Отображать изображение в каждой кнопке

#c# #wpf #xaml

#c# #wpf #xaml

Вопрос:

Во-первых, я новичок в XAML и C #, я пытаюсь учиться.

В моем главном окне у меня есть две кнопки. В каждой кнопке я хочу отобразить изображение. В первой кнопке, когда я нажимаю на нее, изображение меняется. Во второй кнопке, когда я нажимаю на нее, это закрывает приложение.

Моя проблема в том, что когда я запускаю приложение, изображение появляется только на первой кнопке. И я не понимаю, почему. Я не вижу изображения во второй кнопке…

Не могли бы вы сказать мне, что я сделал не так, пожалуйста?

Мой .XAML:

 <Window x:Class="ObjFlauraud.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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ObjFlauraud"
        mc:Ignorable="d"
        Title="MainWindow" Height="150" Width="800"
        WindowStyle="None"
        WindowStartupLocation="Manual"
        Top="0"   
>
    <Window.Resources>
        <Image x:Key="KeyAffiche" Source="down-arrow.png" />
        <Image x:Key="KeyCache" Source="up-arrow.png" />
        <Image x:Key="KeyClose" Source="fermer.png" />
    </Window.Resources>

    <Grid>
        <GroupBox VerticalAlignment="Bottom" HorizontalAlignment="Right" BorderThickness="0,0,0,0" Margin="0,0,-7,-7">
            <StackPanel VerticalAlignment="Bottom" HorizontalAlignment="Right" Orientation="Horizontal">
                <Button x:Name="BtnAffiche" Width="16" Height="16" Click="BtnAffiche_Click">
                    <DynamicResource ResourceKey="KeyCache"/>
                </Button>
                <Button x:Name="BtnFermer" Width="16" Height="16" Click="BtnFermer_Click" Content="{DynamicResource KeyClose}">
                    
                </Button>
            </StackPanel>
        </GroupBox>
    </Grid>
    
</Window> 
  

My .cs

 using System.Windows;

namespace ObjFlauraud
{
    /// <summary>
    /// Logique d'interaction pour MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.Left = (System.Windows.SystemParameters.PrimaryScreenWidth / 2) - (this.Width / 2);
            this.ShowInTaskbar = false;
            this.Topmost = true;
        }

        private void BtnAffiche_Click(object sender, RoutedEventArgs e)
        {
            if (BtnAffiche.Content == FindResource("KeyCache"))
            {
                BtnAffiche.Content = FindResource("KeyAffiche");
                this.Top = this.Top - this.Height   BtnAffiche.Height   5;
            }
            else
            {
                BtnAffiche.Content = FindResource("KeyCache");
                this.Top = 0;
            }
        }

        private void BtnFermer_Click(object sender, RoutedEventArgs e)
        {
            System.Windows.Application.Current.Shutdown();
        }
    }
}
  

Комментарии:

1. @MathewHD Это разные обозначения для одного и того же, оба верны. @Franck Вы получаете какие-либо ошибки в окне вывода? Попробуйте указать KeyClose ресурс в первой кнопке. Если это не работает, более вероятно, что в имени файла опечатка или файл не существует.

2. @thatguy У меня нет ошибок в окнах вывода. Я попытался изменить изображение другим, и это сработало. я думаю, что мое первое изображение было прослушано… Спасибо за помощь.