C# 如何更改启动屏幕上的Textblock值?
我正在尝试为我的应用程序制作一个动画启动屏幕。我有我的主页,在那里我显示一个弹出窗口,其中有一个动画和一个文本块。我想更改文本块的文本以显示加载状态,但无法更改。有什么想法吗 主页代码 飞溅xamlC# 如何更改启动屏幕上的Textblock值?,c#,windows-phone-7,C#,Windows Phone 7,我正在尝试为我的应用程序制作一个动画启动屏幕。我有我的主页,在那里我显示一个弹出窗口,其中有一个动画和一个文本块。我想更改文本块的文本以显示加载状态,但无法更改。有什么想法吗 主页代码 飞溅xaml 像这样的怎么样: preloader.WorkerReportsProgress = true; preloader.ProgressChanged += (sender, e) => { this.Dispatcher.BeginInvoke(() =>
像这样的怎么样:
preloader.WorkerReportsProgress = true;
preloader.ProgressChanged += (sender, e) =>
{
this.Dispatcher.BeginInvoke(() =>
(this.splashPop.Child as Splash).Progress = e.ProgressPercentage.ToString());
};
在Splash.xaml.cs中,您将看到以下内容:
public string Progress
{
get { return preloader_percentage.Text; }
set { preloader_percentage.Text = value; }
}
在MainWindow.xaml.cs中,您可以将代码更改为如下所示:
preloader.WorkerReportsProgress = true;
preloader.ProgressChanged += (sender, e) =>
{
this.Dispatcher.BeginInvoke(() =>
(this.splashPop.Child as Splash).Progress = e.ProgressPercentage.ToString());
};
然后在worker方法中,需要调用预加载程序。方法多次。据我所知,应该这样做
注意:这里有很多设计地雷。我建议让这段代码开始工作,以后您可以使用它,使其更干净、更易于维护。我现在无法访问pastebin.com,但您是否绑定到视图模型?如果是这样,这个视图模型是否正在更新相关属性并触发NotifyPropertyChanged事件?您似乎正在后台线程上执行所有处理。如果是这样,您需要更新任何UI元素,例如UI线程上的文本框。我在你的示例中看不到任何与文本框有关的代码???它不在粘贴中,因为它不起作用。我试图在App.xaml中使用一个全局变量,并在后台工作程序中更改它的值,在后台工作程序中更新我的文本块。哪个ofc是一个糟糕的开始。我不想为此使用ModeView,因为它只是一个变量,当你启动应用程序时,你只会在几秒钟内看到它。这将有助于查看你用来尝试和更新UI的代码,无论它是否工作。我只需要一个简单的方法来解决这个问题。我的代码不重要。我应该如何在弹出窗口中获取文本块?this.splaspoup没有名为Progress的方法或属性。很抱歉,它实际上是您的Splash对象-您需要向Splash对象添加一个Progress属性来更改进度文本。我来编辑。
preloader.WorkerReportsProgress = true;
preloader.ProgressChanged += (sender, e) =>
{
this.Dispatcher.BeginInvoke(() =>
(this.splashPop.Child as Splash).Progress = e.ProgressPercentage.ToString());
};