Ах, я вижу, недостаточно внимательно прочитал вопрос, вы делаете это в классе пользовательского элемента управления, а не в классе основной формы
я есть приложение WPF с этими тремя типами вещей ...
WindowMainUserControlZackWindowModalUserControlZack1 сидит на моем 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» является типом и не может использоваться в качестве выражения. »