Создание "вспомогательных" окон в WPF - PullRequest
0 голосов
/ 20 марта 2010

Я пишу приложение в WPF и хочу создать «вспомогательное» окно. Окно должно быть изменяемого размера, без опции минимизации и не отображается на панели задач. Если приложение получает фокус, оно также должно отображаться, но следует ли сохранить его впереди или позади главного окна. Когда главное окно закрыто, оно должно закрываться вместе с приложением.

Примером является отдельная панель в Visual Studio.

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

Кто-нибудь знает хороший способ подойти к этому?

Ответы [ 2 ]

1 голос
/ 09 апреля 2010

Вы можете попробовать что-то вроде этого:

<Window x:Class="HelperWindowDemo.HelperWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="HelperWindow" Height="300" Width="300"
    WindowStyle="ToolWindow"
    ShowInTaskbar="False">
<Grid>
    <TextBlock>Helper window..</TextBlock>
</Grid>

и как вы хотите показать, что-то на этот счет:

private void AddHelperWindow_Click(object sender, RoutedEventArgs e)
    {
        var window = new HelperWindow { Owner = this };
        window.Show();
    }

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

1 голос
/ 20 марта 2010

Я думаю, что вы ищете что-то вроде "немодального" диалогового окна. Я не делаю WPF, но описание здесь кажется довольно простым.

http://msdn.microsoft.com/en-us/library/aa969773.aspx

...