В приложении WPF я использую Textbox с пользовательским стилем, в котором ContextMenu переопределяется следующим образом:
<Style TargetType="{x:Type TextBox}">
<Setter Property="ContextMenu">
<ContextMenu>
<MenuItem Header="Copy"/>
</ContextMenu>
</Setter>
</Style>
Это будет работать до тех пор, пока я не запущу окно с TextBox в разных потоках, таких как:
Thread thread = new Thread(()=>
{
TestWindow wnd = new TestWindow();
wnd.ShowDialog();
});
thread.SetApartmentState(ApartmentState.STA);
thread.IsBackground = true;
thread.Start();
Но это вызывает InvalidOperationException «Вызывающий поток не может получить доступ к этому объекту, поскольку другой поток владеет им.».
Как избежать этой проблемы?