Всем привет. Решил я написать самое полезное приложение на WPF Для начала потребуется установить картинку мандарина в формате .ico, чтобы это было иконкой нашего приложения. После установки, кидаем её в папку проекта и подключаем в файле проекта: <Project Sdk="Microsoft.NET.Sdk"> <!--Не заменяйте свои настройки на мои. Добавьте в свой проект только ApplicationIcon и ItemGroup--> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net8.0-windows</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <UseWPF>true</UseWPF> <!--В AppliactionIcon указываем путь до изображения Это нужно, чтобы изображение стало иконкой приложения--> <ApplicationIcon>mandarin.ico</ApplicationIcon> </PropertyGroup> <!--В Include указываем путь до изображения Это нужно, чтобы проект видел изображение И компилировался без ошибок--> <ItemGroup> <Resource Include="mandarin.ico" /> </ItemGroup> </Project> Code <Project Sdk="Microsoft.NET.Sdk"> <!--Не заменяйте свои настройки на мои. Добавьте в свой проект только ApplicationIcon и ItemGroup--> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net8.0-windows</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <UseWPF>true</UseWPF> <!--В AppliactionIcon указываем путь до изображения Это нужно, чтобы изображение стало иконкой приложения--> <ApplicationIcon>mandarin.ico</ApplicationIcon> </PropertyGroup> <!--В Include указываем путь до изображения Это нужно, чтобы проект видел изображение И компилировался без ошибок--> <ItemGroup> <Resource Include="mandarin.ico" /> </ItemGroup> </Project> После этого создадим класс Count, чтобы изменять счётчик кликов: using System.ComponentModel; using System.Runtime.CompilerServices; namespace Mandarin // Пространство имён может отличаться от вашего { class Count : INotifyPropertyChanged { private long counts; public long Counts // Переменная, которая будет хранить в себе количество кликов { get { return counts; } set { counts = value; OnPropertyChanged("Counts"); } } public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged([CallerMemberName] string prop = "") { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(prop)); } } } CSHARP using System.ComponentModel; using System.Runtime.CompilerServices; namespace Mandarin // Пространство имён может отличаться от вашего { class Count : INotifyPropertyChanged { private long counts; public long Counts // Переменная, которая будет хранить в себе количество кликов { get { return counts; } set { counts = value; OnPropertyChanged("Counts"); } } public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged([CallerMemberName] string prop = "") { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(prop)); } } } Перейдём в xaml код нашего приложения: <!--Пространство имён может отличаться от вашего. Замените его на своё Заменять в параметре xmlns:local--> <Window x:Class="Mandarin.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:Mandarin" mc:Ignorable="d" Title="Мандарин" Icon="mandarin.ico" WindowStartupLocation="CenterScreen" MinWidth="200" MinHeight="350" Width="1280" Height="720" Background="#B57000" KeyDown="WindowKeyDown"> <Window.Resources> <!--Создадим переменную Count, которая содержит созданный нами класс--> <local:Count x:Key="Count" Counts="0" /> </Window.Resources> <Grid> <!--Создадим привязку к переменной Count, чтобы выводить клики--> <TextBlock Text="{Binding Source={StaticResource Count}, Path=Counts}" Foreground="White" FontFamily="Arial" FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0, -250, 0, 0" /> <!--Создадим Image, чтобы отобразить наше изображение Также добавим событие MouseLeftButtonDown, Чтобы обрабатывать нажатия, для изменения количества кликов--> <Image Source="mandarin.ico" HorizontalAlignment="Center" VerticalAlignment="Center" MaxWidth="200" MaxHeight="200" MouseLeftButtonDown="Click" /> </Grid> </Window> Code <!--Пространство имён может отличаться от вашего. Замените его на своё Заменять в параметре xmlns:local--> <Window x:Class="Mandarin.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:Mandarin" mc:Ignorable="d" Title="Мандарин" Icon="mandarin.ico" WindowStartupLocation="CenterScreen" MinWidth="200" MinHeight="350" Width="1280" Height="720" Background="#B57000" KeyDown="WindowKeyDown"> <Window.Resources> <!--Создадим переменную Count, которая содержит созданный нами класс--> <local:Count x:Key="Count" Counts="0" /> </Window.Resources> <Grid> <!--Создадим привязку к переменной Count, чтобы выводить клики--> <TextBlock Text="{Binding Source={StaticResource Count}, Path=Counts}" Foreground="White" FontFamily="Arial" FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0, -250, 0, 0" /> <!--Создадим Image, чтобы отобразить наше изображение Также добавим событие MouseLeftButtonDown, Чтобы обрабатывать нажатия, для изменения количества кликов--> <Image Source="mandarin.ico" HorizontalAlignment="Center" VerticalAlignment="Center" MaxWidth="200" MaxHeight="200" MouseLeftButtonDown="Click" /> </Grid> </Window> Теперь нужно обрабатывать клики. Для этого перейдём в cs код нашего xaml. (Обычно он называется MainWindow.xaml.cs): using System.Windows; using System.Windows.Input; namespace Mandarin // Пространство имён может отличаться от вашего { public partial class MainWindow : Window { public MainWindow() => InitializeComponent(); // Инициализация компонентов, для отображения элементов private void Click(object sender, MouseButtonEventArgs e) => ((Count)Resources["Count"]).Counts++; // При нажатии на изображение, добавлять еденицу к количеству кликов private void WindowKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.F11) // При нажатии на F11, переключаться на полноэкранный режим. Сделано для удобства { WindowStyle = WindowStyle == WindowStyle.None ? WindowStyle.SingleBorderWindow : WindowStyle.None; WindowState = WindowStyle == WindowStyle.SingleBorderWindow ? WindowState.Normal : WindowState.Maximized; } } } } CSHARP using System.Windows; using System.Windows.Input; namespace Mandarin // Пространство имён может отличаться от вашего { public partial class MainWindow : Window { public MainWindow() => InitializeComponent(); // Инициализация компонентов, для отображения элементов private void Click(object sender, MouseButtonEventArgs e) => ((Count)Resources["Count"]).Counts++; // При нажатии на изображение, добавлять еденицу к количеству кликов private void WindowKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.F11) // При нажатии на F11, переключаться на полноэкранный режим. Сделано для удобства { WindowStyle = WindowStyle == WindowStyle.None ? WindowStyle.SingleBorderWindow : WindowStyle.None; WindowState = WindowStyle == WindowStyle.SingleBorderWindow ? WindowState.Normal : WindowState.Maximized; } } } }