Как запустить скрытое окно?

272
23 февраля 2017, 23:21

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

Сейчас я создаю окно так:

new Window() {
    Visibility = Visibility.Hidden,
    WindowStyle = WindowStyle.None,
    Width = 0,
    Height = 0
};

Но есть проблемы:

1) Несмотря на Visibility.Hidden окно сначала появляется на некоторое время, а уже потом исчезает, по этому я и пишу остальные свойства

2) Несмотря на отсутствие верхнего заголовка (WindowStyle.None) и нулевые размеры кона, все равно появляется его обводка, её видно

3) Новое окно так же на время появляется в панели задач

Как можно создать полностью скрытое окно из кода?

Answer 1

С win.api загнул. Предлагаю следующие решение из костылей и велосипедов. Окно банально запускается в самом правом нижнем углу, со свойствами Visibility.Hidden и ShowInTaskbar = false. Данный костыль полностью делает незаметным открытие данного окна - не появляется обводка на пару секунд. А также ShowInTaskbar = false скрывает в менеджере задач данное окно.

   Window wnd = new Window()
    {
        Visibility = Visibility.Hidden,
        ShowInTaskbar = false,
        Title = "Hidden window",
        Width = 0,
        Height = 0,
        WindowStartupLocation = WindowStartupLocation.Manual,
        Left = SystemParameters.PrimaryScreenWidth,
        Top = SystemParameters.PrimaryScreenHeight
    };
    wnd.Show();
READ ALSO
Применение и значение ключевого слова volatile

Применение и значение ключевого слова volatile

Если читать горячо любимый msdn можно найти следующую формулировку:

283
Вывод с двух коллекций одновременно

Вывод с двух коллекций одновременно

У меня есть две коллекции, которые нужно вывести в одном циклеКак мне лучше всего это реализовать? Можно ли использовать foreach или нет?

265
Ajax запрос в контролеру

Ajax запрос в контролеру

привет есть запрос

309