Lam*_*fif 3 .net c# wpf user-interface multithreading
我有一个 WPF 应用程序,其中有此用户控件
看法
<Grid Background="{StaticResource ResourceKey=baground}" >
<DockPanel >
<UserControl x:Name="container" ></UserControl>
</DockPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)
我需要添加一个在内容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();
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我尝试了这个活动LayoutUpdated,但我认为这不是最好的主意,因为它被提出了很多次,即使container内容没有改变。
谢谢,
DependencyProperty在 WPF 中,如果您想在Content更改时引发事件,您可以设置为任何事件引发事件
var desc = DependencyPropertyDescriptor.FromProperty(ContentControl.ContentProperty, typeof(UserControl));
desc.AddValueChanged(container, ContentPropertyChanged);
Run Code Online (Sandbox Code Playgroud)
并在这里做你需要做的事情:
private void ContentPropertyChanged(object sneder, EventArgs e)
{
//event handler
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |