Новое окно WPF показывает только внизу исходное окно

в моем приложении WPF, у меня есть ListView в основной форме, которая отображает связанные данные из набора данных. Когда пользователь дважды щелкнул строку в ListView, он открывает окно детали.

В моем XAML я использовал стиль для создания обработчика двойного щелчка в списке:

<Style x:Key="ListViewDoubleClick" TargetType="{x:Type ListViewItem}">
    <EventSetter Event="MouseDoubleClick" Handler="HandleDoubleClick" />
</Style>
...
<ListView Name="searchResults" ItemContainerStyle="{StaticResource ListViewDoubleClick}>

в кодовом режиме у меня есть словарь, который отслеживает окна открытых сведений (несколько можно открыть одновременно ) Так что если окно детали уже открыто, он доведен до фронта. Я обрабатываю двойной щелчок так:

private void HandleDoubleClick(object sender, MouseEventArgs e)
{
    DataRowView clickedRow = ((ListViewItem)sender).Content as DataRowView;
    int row = (int)clickedRow.Row["ID"];
    if (!displayedCards.ContainsKey(row))
    {
        DetailWindow window = new DetailWindow(RetrieveData(row));
        //window.Owner = this;
        displayedCards.Add(row, window);
        window.Show();
    }
    else
    {
        displayedCards[row].Activate();
    }
}

Моя проблема заключается в том, что с таким концом, как указано выше, детальные окна открываются за основной формой. Если я устанавливаю информацию о владельце ( window.owner = это ), детальные окна открываются сверху основной формы, но основная форма никогда не может проходить перед детализационными окнами.

Показатели [ROW] [ROW] .activate () работает, как я ожидал, принося это окно детали на переднюю часть всех других деталей Windows, но оно падает жертвой такой же проблемы, как указано выше - это не делает T прийти перед главным окном.

То, что я хочу достичь, - это иметь детальные окна на одном уровне / слое (/ z порядок?) В качестве главного окна, чтобы оба могли появиться в верхней части друг друга и иметь отображение деталей верх основной формы, когда они открыты.

Отредактируйте: Если важно, детальное окно не имеет WindowStyle и AuthoStransparence установлено значение true. У меня также нет заголовка окна, и окно не отображается в панели задач. При попытке выяснить это, я попробовал установить WindowStyle oneboborderwindow , и происходит такая же проблема, за исключением того, что граница детального окна показана сверху основной формы, как Окно детали нарисовано, а затем нажато позади основной формы. Может ли мой двойной щелчок по существу вытащить основную форму спереди после того, как окно детали отображается?

6
задан Jared Harley 9 September 2011 в 16:55
поделиться