Я решил ответить на это сам, так как мое решение оказалось немного более полным.Я не совсем понимаю «правильный» способ сделать это, но вот как я это сделал:
Window1 window_reference = (Window1)(Window1.GetWindow((Button)sender));
После этого дочерние элементы (такие как другие элементы управления xaml) главного окна могут бытьзамечено во время компиляции.
Кроме того, более прямой способ сделать это состоит в том, чтобы иметь открытый член UserControl, например, так:
namespace UIDD_Test
{
public partial class UserControl1 : UserControl
{
public Window1 window_reference;
public UserControl1()
{
InitializeComponent();
}
}
}
Затем, при необходимости, вы можете установитьчлен ссылаться на любое окно, которое вы хотите.В моем случае у меня есть класс Window1
, производный от Window
, поэтому я могу установить этот член класса UserControl1
следующим образом:
myusercontrol.window_reference = window_main;
Где я установил xamlвот так:
<local:UserControl1 x:Name="myusercontrol"/>
И window_main - это имя главного окна (это класс Window1).