Wpf 穿入窗户
这是我的密码Wpf 穿入窗户,wpf,Wpf,这是我的密码 public partial class MainWindow : Window { Thread ProgressThread; Window w; public MainWindow() { InitializeComponent(); } private void button1_Click(object sender, RoutedEventArgs e) { ProgressThre
public partial class MainWindow : Window
{
Thread ProgressThread;
Window w;
public MainWindow()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
ProgressThread = new Thread(() =>
{
w = new Window();
RoundProgressBar objprogress=new RoundProgressBar();
w = new Window();
w.Margin = new Thickness(0, 0, 50, 0);
w.WindowState = WindowState.Normal;
w.WindowStartupLocation = WindowStartupLocation.CenterOwner;
w.Height = 80;
w.Width = 80;
w.ResizeMode = ResizeMode.NoResize;
w.AllowsTransparency = true;
w.WindowStyle = WindowStyle.None;
RoundProgressBar Progress = new RoundProgressBar();
w.Content = objprogress;
w.ShowInTaskbar = false;
w.ShowDialog();
w.Content = Progress;
w.ShowInTaskbar = false;
w.ShowDialog();
w.Closed += (sender2, e2) =>
w.Dispatcher.InvokeShutdown();
System.Windows.Threading.Dispatcher.Run();
});
ProgressThread.SetApartmentState(ApartmentState.STA);
ProgressThread.Start();
}
}
当我点击按钮时,线程启动屏幕中间的进度条。当我更改主屏幕时,进度条窗口不会更改
我想在窗口中间显示进度条。如果我搬到任何地方
w、 所有者=此
我知道在这段代码的帮助下,这将非常好地工作。但是我在线程中工作,所以发生了这个错误
“调用线程无法访问此对象,因为其他线程拥有它”
请帮助我解决此问题UI对象位于UI线程上。您希望有一个后台线程来监控进度,但是如果您想在UI上更新任何内容,则需要再次将其分派回UI线程 大致如下:
private void button1_Click(object sender, RoutedEventArgs e) {
Task t = Task.Factory.StartNew(UpdateUI);
}
private void UpdateUI() {
Dispatcher.Invoke(
new Action(() => {
textBox1.Text = "Henk";
// etc etc, this would be your normal code
})
);
}
本文对此进行了解释:
如果可以使用,那么您应该看看示例。这就是为什么这些问题的痛苦大多消失了
你好,格特·简