Es gibt viel Code. Aber Problem ist da: Ich habe eine Listbox mit Control als Datatemplate bekam:WPF Hauptfenster ist immer über anderen Fenstern
<ListBox x:Name="UpcomingConcertsList" ItemsSource="{Binding UpcomingConcerts}" HorizontalAlignment="Left" Height="350" Margin="10,208,0,0" VerticalAlignment="Top" Width="370">
<ListBox.ItemTemplate>
<DataTemplate>
<Control MouseDoubleClick="UpcomingConcert_DoubleClick">
<Control.Template>
<ControlTemplate>
<Border Margin="5" BorderThickness="1" BorderBrush="SteelBlue" CornerRadius="4" Width="320">
<Grid Margin="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Image Grid.RowSpan="2" Width="100" Height="75" Margin="6" Source="{Binding ImageURL}"/>
<StackPanel Grid.Column="1" Margin="2,6">
<TextBlock FontWeight="Bold" Text="{Binding Name}"/>
<TextBlock Text="{Binding Date, StringFormat={}{0:g}}"/>
<TextBlock Text="{Binding Bands, Converter={StaticResource BandsConverter}}"/>
</StackPanel>
</Grid>
</Border>
</ControlTemplate>
</Control.Template>
</Control>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
und Ereigniscode klicken hinter:
private void Concert_DoubleClick(object sender, MouseButtonEventArgs e)
{
Control control = sender as Control;
Concert concert = control.DataContext as Concert;
ConcertView wndw = new ConcertView(concert.ConcertID);
wndw.Show();
}
Und ConcertView Fenster geöffnet wird, aber nur unter meinem Mainwindow. wndw.Activate(), wndw.Focus() hilft nicht. Ich habe versucht, dies zu tun.IsEnabled = false und wndw.Show() danach. Dann war mein ConcertView über MainWindow. Aber da dies.IsEnabled wahr wird, geht ConcertView plötzlich unter.
Gibt es Ideen?
Haben Sie versucht, 'wndw.TopMost = true;' ?? – ViVi
@ vishakh369 Ja, ich habe es versucht. Natürlich bekommt meine WNDW über alle Fenster. Aber TopMost macht mein Fenster über alle Anwendungen. Aber ich brauche nur mein ConcertView um über MainWindow zu erscheinen. Ich versuchte auch wndw.TopMost = true und wndw.TopMost = false nach Thread.Sleep (x) (Schlaf ist nur um zu überprüfen, ob es richtig funktioniert) - so meine wndw bekam Top und danach unter MainWindow – utkillr
Ich posten meine Antwort als Antwort, da es zu lang ist und Code enthält. Wie auch immer ich denke, es sollte funktionieren. – ViVi