Ich habe eine WPF-Anwendung mit diesen drei Arten von Dingen bekam ...WPF: Wie setze ich das Besitzerfenster eines Dialogs, der von einem UserControl angezeigt wird?
- WindowMain
- UserControlZack
- WindowModal
UserControlZack1 sitzt auf meinem WindowMain ...
<Window x:Class="WindowMain"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ProjectName"
...
Name="WindowMain">
<Grid>
...
<local:UserControlZack x:Name="UserControlZack1" ... />
...
</Grid>
</Window>
UserControlZack1 zeigt eine WindowModal-Dialogbox an ...
Partial Public Class UserControlZack ... Private Sub SomeButton_Click(...) 'instantiate the dialog box and open modally... Dim box As WindowModal = New WindowModal() box.Owner = ????? box.ShowDialog() 'process data entered by user if dialog box is accepted... If (box.DialogResult.GetValueOrDefault = True) Then _SomeVar = box.SomeVar ... End If End Sub End Class
Wie kann ich box.Owner auf das richtige Fenster, meine laufenden Instanz WindowMain eingestellt?
Ich kann box.Owner = Me.Owner
nicht verwenden, weil "'Besitzer' kein Mitglied von 'ProjectName.UserControlZack' ist."
Ich kann box.Owner = Me.Parent
nicht verwenden, weil das ein Raster zurückgibt, nicht das Fenster.
Ich kann box.Owner = WindowMain
nicht verwenden, weil "'WindowMain' ein Typ ist und nicht als Ausdruck verwendet werden kann."
Eine korrekte, akzeptable Antwort wurde wahrscheinlich schon eingereicht. Basierend ausschließlich auf den Stimmen sollte Martins wohl angenommen werden. – Emyr