0 / 0 / 0
Регистрация: 10.09.2012
Сообщений: 4
1
.NET 4.x

Правильно свернуть программу в трей

10.09.2012, 14:46. Показов 4167. Ответов 5
Метки нет (Все метки)

Здравствуйте. У меня возникли маленькие трудности с добавлением состояния сворачивания в трей..
Приложение написано с использованием WPF. Прикладываю код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Manager.ViewModels;
using Manager.Models;
using System.IO;
using System.Diagnostics;
using System.Drawing;
 
namespace Manager
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
        private System.Windows.Forms.NotifyIcon MyNotifyIcon;
        public MainWindow()
        {
            this.DataContext = MainViewModel.Instance;
            InitializeComponent();
            MyNotifyIcon = new System.Windows.Forms.NotifyIcon();
            MyNotifyIcon.MouseDoubleClick +=
                new System.Windows.Forms.MouseEventHandler
                    (MyNotifyIcon_MouseDoubleClick);
        }
 
        void MyNotifyIcon_MouseDoubleClick(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.WindowState = WindowState.Normal;
        }
 
        private void Window_StateChanged(object sender, EventArgs e)
        {
            if (this.WindowState == WindowState.Minimized)
            {
                this.ShowInTaskbar = false;
                MyNotifyIcon.BalloonTipTitle = "Minimize Sucessful";
                MyNotifyIcon.BalloonTipText = "Minimized the app ";
                MyNotifyIcon.ShowBalloonTip(400);
                MyNotifyIcon.Visible = true;
            }
            else if (this.WindowState == WindowState.Normal)
            {
                MyNotifyIcon.Visible = false;
                this.ShowInTaskbar = true;
            }
        }
    }
}
Как видите я использовал пример из форума - однако не совсем помню тему в которой я его нашел.. Тем не менее примеры из интернета выглядят приблизительно так же...

Если убрать строчку:
C#
1
2
MyNotifyIcon.Icon = new Icon(
                            "/Resources/favicon.ico");
То программа работает и даже сворачивается, но иконки в трее так и не появляется...Если вернуть - то программа (При клике на кнопку свернуть) ничего не делает... А иногда вообще не открывает MainWindow, а висит в процессах после запуска..

Помогите пожалуйста с решением проблемы - а то 3 дня насмарку и все из-за того что я практически ничего не понимаю в этом..
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2012, 14:46
Ответы с готовыми решениями:

Свернуть программу в трей
Доброго времени суток :) Название говорит само за себя, как научить программу, при нажатии на...

Как свернуть окно в трей
Как сделать так, чтоб программа при сворачивании попадала в трэй? Чтоб имела своё меню. (wpf)

Как свернуть в трей?
У меня приложеньице всегда отображается в трее. А как сделать, чтобы при его закрытии оно бы тоже...

Как свернуть программу при старте?
как при запуске программы свернуть ее на панель задач ? консольную или виндовс форм думаю нету...

5
burning1ife
1455 / 1277 / 293
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
11.09.2012, 16:47 2
иконка добавлена в ресурсы?
0
0 / 0 / 0
Регистрация: 10.09.2012
Сообщений: 4
11.09.2012, 18:44  [ТС] 3
Если быть уверенным - то наверно нет.. потому что я просто перетянул ее в Visual Studio в папку Resources
0
burning1ife
1455 / 1277 / 293
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
11.09.2012, 18:49 4
в обозревателе проектов правой кнопкой по вашему проекту-> свойства->закладка "ресурсы"->
добавить
0
0 / 0 / 0
Регистрация: 10.09.2012
Сообщений: 4
11.09.2012, 19:35  [ТС] 5
В ресурсах пусто (можно добавить), но файлы в ресурсах есть и они используются в приложении однако в коде я не встречал такого явного указывания... Только в XAML.
Именно этот файл используется в XAML, но его нет в ресурсах как и остальных файлов
0
2 / 2 / 0
Регистрация: 26.04.2010
Сообщений: 11
12.09.2012, 22:58 6
Как вариант:
в свойствах файла ico указываете:
1) Действие при построении - Содержание.
2) Копировать в выходной каталог - Копировать если новее.
(Если версия английская, думаю разберётесь)

MyNotifyIcon.Icon = new Icon(Directory.GetCurrentDirec tory() + "/Директория картики/favicon.ico");

Файл ico обязательно сохраните в нормально редакторе иконок, например IcoFX.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2012, 22:58
Помогаю со студенческими работами здесь

Как правильно свернуть в трей при нажатии иконки minimize?
Именно как правильно? Потому что, если делать это в событии OnWindowStateChange следующим образом ...

Свернуть программу в трей
Всем доброго времени суток.Мое приложение по клику на Minimize box должно свернуться в...

Свернуть программу в трей
Доброго времени суток, вот написал программу, подскажите как её свернуть в трей, и как потом...

Свернуть программу в трей
Доброго времени суток! Подскажите пожалуйста команду чтобы по нажатии на допустим Button1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru