0

当前上下文中不存在名称“App”。

这怎么可能?必须注意我的初始化代码不同于 MainPage() 类型,因为我将 SketchFlow 应用程序转换为生产 Silverlight。他们指示您通过 System.Windows.Controls.Frame() 执行初始化代码:

private void Application_Startup(object sender, StartupEventArgs e)
{
    this.RootVisual = new System.Windows.Controls.Frame() { Source = new Uri("/MyAppScreen.xaml", UriKind.Relative) };

}
public static string ValueFromHome =
"A Value on Home page"; 

目标是在 App 对象中设置公共变量,以便我可以从各种屏幕上访问它


访问资源数据需要调用我认为如下所示的 App 对象,对吗?所以这对我没有帮助

string color = App.Current.Resources["customColor"].ToString(); 
4

1 回答 1

0

如果您只是存储字符串,请考虑使用资源文件。然后,如果有必要,可以翻译它们。编辑(解释资源文件的使用):要访问资源,首先在您的项目中创建一个 .resx 文件(假设您将其命名为 MainResource.resx),将访问修饰符下拉更改为公共,添加带有名称的字符串: ValueFromHome 和 Value:“主页上的值”。然后,如果需要,您可以通过将 using 添加到资源的命名空间并直接调用它来获取值,如下所示:

string value = MainResource.ValueFromHome;

我会警惕周围的静态变量。也许您可以使用 MainViewModel 来存储该值。如果您确实需要一个静态变量,请在您的项目中创建一个新的静态类,并将您的 ValueFromHome 属性放在该类中。该应用程序可能不可用,因为它是一个 Silverlight 结构,并非对所有区域都可用。

于 2011-10-18T20:22:43.133 回答