我有一个WPF应用程序,我有这个用户控件
查看
<Grid Background="{StaticResource ResourceKey=baground}" >
<DockPanel >
<UserControl x:Name="container" ></UserControl>
</DockPanel>
</Grid>
我需要添加container
内容更改时引发的事件:
private void container_LayoutUpdated_1(object sender, EventArgs e)
{
Thread windowThread2 = new Thread(delegate() { verifing2(); });
windowThread2.SetApartmentState(ApartmentState.STA);
windowThread2.IsBackground = true;
windowThread2.Start();
Thread windowThread3 = new Thread(delegate() { verifing3(); });
windowThread3.SetApartmentState(ApartmentState.STA);
windowThread3.IsBackground = true;
windowThread3.Start();
}
正如您所看到的,我尝试了LayoutUpdated
这个事件,但我认为这不是最好的主意,因为即使container
内容未更改,也会多次提升
谢谢,
答案 0 :(得分:3)
在WPF中,您可以设置为任何DependencyProperty
举办活动,以便在Content
更改
var desc = DependencyPropertyDescriptor.FromProperty(ContentControl.ContentProperty, typeof(UserControl));
desc.AddValueChanged(container, ContentPropertyChanged);
在这里做你需要的事情:
private void ContentPropertyChanged(object sneder, EventArgs e)
{
//event handler
}