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

я есть приложение WPF с этими тремя типами вещей ...

WindowMainUserControlZackWindowModal

UserControlZack1 сидит на моем 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 отображает диалоговое окно WindowModal ...

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

Как мне установить box.Owner на правильный Window, мой запущенный экземпляр WindowMain?

Я не могу использоватьbox.Owner = Me.Owner, потому что «Владелец» не является членом «ProjectName.UserControlZack». "

Я не могу использоватьbox.Owner = Me.Parent, потому что это возвращает сетку, а не окно.

Я не могу использоватьbox.Owner = WindowMain, потому что «WindowMain» является типом и не может использоваться в качестве выражения. »

Ответы на вопрос(6)

Ваш ответ на вопрос