如何从wp7中的Mainpage.xaml.cs调用App.xaml.cs中的Method

时间:2011-12-02 08:45:11

标签: windows-phone-7.1 windows-phone-7

我在这里有一个简单的问题。任何人都可以帮我解决这个问题。

我是Windows Phone新手。我正在开发一个应用程序,我可以在其中更改整个应用程序的字体样式。我有三个不同的资源文件来设置三种不同类型的字体样式。资源文件在App.xaml.cs文件中设置为application。现在我需要支持从Application Changestyles页面更改Application run time中的样式。所以我需要从changestyles.xaml.cs页面调用app.xaml.cs中的方法。

private void LoadResourceDictionary()
{

    var dictionaries = new ResourceDictionary();

    string source = String.Format("/Testapp;component/Large.xaml");
    var themeStyles = new ResourceDictionary { Source = new Uri(source, UriKind.Relative) };
    dictionaries.MergedDictionaries.Add(themeStyles);

    App.Current.Resources = dictionaries;

    ResourceDictionary appResources = App.Current.Resources;
}

我需要调用此方法在运行时将另一个资源设置为我的应用程序。

是否可以解决此问题?

2 个答案:

答案 0 :(得分:1)

将此方法设为public static,您可以从任何地方调用它:App.LoadResourceDictionary();

答案 1 :(得分:0)

这是一个通用的如何基于我正在编写的应用程序所需的代码。我知道情况略有不同,但它可能会帮助那些追求类似解决方案的人:

在MainPage.xaml中,您可以创建如下方法:

public static void InMainPage()
{
    System.Diagnostics.Debug.WriteLine("Hi I am a method in MainPage.xaml.cs");
}

现在在App.xaml.cs中你可以用任何方法调用它:

MainPage.InMainPage();

它为你在反向方向的环境工作

在App.xaml.cs中,您可以创建如下方法:

public static void InAppXaml()
{
    System.Diagnostics.Debug.WriteLine("Hi I am a method in App.xaml.cs");
}

现在在Mainpage.xaml.cs中你可以用任何方法调用它:

App.InAppXaml();

经过测试并且效果很好。希望它有所帮助!