0

基本的に、私が持っているのは、Windows Phone 7 と Windows Phone 8 をターゲットとする 2 つのプロジェクトを持つ 1 つのソリューションです。ページとクラスを WP7 プロジェクトから WP8 プロジェクトにリンクしました (リンクとして追加)。また、各プロジェクトには 2 つの別々のページTestPage.xamlTestPageWP8.xaml.

Conditional compilation symbols WP8 プロジェクトでは、追加のWP8を追加しました。だから私のメインページには次のようなものがあります:

        private void onButtonClick(object sender, RoutedEventArgs e)
        {
#if WP8
            NavigationService.Navigate(new Uri("/TestPageWP8.xaml", UriKind.Relative));
#else
            NavigationService.Navigate(new Uri("/TestPage.xaml", UriKind.Relative));
#endif   
        }

問題は、私が開けないことTestPageWP8です、アプリケーションは常に開きますTestPage

私のスタートアップ プロジェクトは WP7 です。Nokia Lumia 920 と 610 を使用しています。

ありがとうございました!

4

4 に答える 4

1

スタートアップ プロジェクトとして WP7 バージョンを使用している場合、このソリューションでは "WP8" コンパイル シンボルが定義されていないため、TestPage.xaml に移動します。
TestPageWP8.xaml に移動する場合は、スタートアップ プロジェクトとして WP8 プロジェクトを設定する必要があります。
また、コンパイル シンボル WP8 が実際に WP8 プロジェクトで定義されていることを確認します。プロジェクトを右クリックし、[プロパティ] に移動して [ビルド] タブを確認します。WP8 が「SILVERLIGHT;WINDOWS_PHONE」シンボルの横に定義されている場合。

于 2013-11-14T18:27:42.307 に答える
1

このコードを試してください:

if (Environment.OSVersion.Version >= new Version(8, 0))
{
    NavigationService.Navigate(new Uri("/TestPageWP8.xaml", UriKind.Relative));
}
else
{
    NavigationService.Navigate(new Uri("/TestPage.xaml", UriKind.Relative));
}
于 2013-11-14T12:14:04.920 に答える
1

MangoPollo ライブラリのこのサンプル コードを使用して、独自のSpeechSynthesizerライブラリを作成できます。

Type taskDataType = Type.GetType("Microsoft.Phone.Tasks.MapsTask, Microsoft.Phone");
object task = taskDataType.GetConstructor(new Type[] {}).Invoke(null);
Utils.SetProperty(task, "SearchTerm", SearchTerm);
if (ZoomLevel > 0)
    Utils.SetProperty(task, "ZoomLevel", ZoomLevel);
Utils.SetProperty(task, "Center", Center);
MethodInfo showmethod = taskDataType.GetMethod("Show");
showmethod.Invoke(task, new object[] {});
于 2014-05-12T10:07:57.470 に答える