none
UWP。ソリューション内の別プロジェクトのMainpageに遷移したい。 RRS feed

  • 質問

  • ソリューション内に、ライブラリ2個(.NET Framework、UWPが1個ずつ)と、UWPアプリのプロジェクト(ここでは、1~3と呼ぶ)があります。

    ソリューション2およびソリューション3のMainpageから、ソリューション1のMainPageに遷移する手段をご教示ください(もしこれができないことならソリューション1に別xamlを設けますので、そこに遷移する手段でもかまいません)

    ~~やったこと~~

    1)ソリューション2・3のMainPageに遷移を設定 →「ペイロード~MainPage.xbfのサイズが異なる」エラー(おそらくソリューション1とソリューション2・3とで、MainPage.xbfのサイズが違うということと思われます)

    2)ソリューション2・3のMainPageのファイル名(ソリューション2ではMainPage_t、ソリューション3ではMainpage_sを変更 →「ペイロード~App.xbfのサイズが異なる」エラー(おそらくソリューション1とソリューション2・3とで、App.xbfのサイズが違うということと思われます)

    3)上記「2)」に加え、Appのファイル名(ソリューション2ではApp_t、ソリューション3ではApp_sを変更 →「ファイル名はAppでなければならない」エラー

    よろしくお願いいたします。

    2020年12月5日 6:55

回答

  • プロジェクト1をクラスライブラリにしmain.xamlを設け、プロジェクト3のMainPage.xamlにLoaded="Page_Loaded"を設け、Page_Loadedルーチンにプロジェクト1のmain.xamlへの遷移を設けることで問題解決となりました。

    • 回答としてマーク ナノレス 2020年12月8日 9:19
    2020年12月8日 9:19

すべての返信

  • なんだかソリューション外(②,③)のプロジェクトのページからソリューション内のページ(①)に遷移と読めるのですが...
    同一ソリューション内の別プロジェクト内のページ(2,3)からメインプロジェクトのページ(1)に遷移であると解釈して。

    メインプロジェクト(1)がサブプロジェクト(2)とサブプロジェクト(3)を参照している構成だとすると、サブプロジェクト側はクラスライブラリになっている必要があります。
    つまりサブプロジェクトのプロパティを開いたときに左の項目一覧の一番上がライブラリになっていないといけません。
    アプリケーションとなっているなら、プロジェクトファイル(csproj,vbproj)をメモ帳などで開いて、以下の箇所を変更してライブラリにします。

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
      <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
        <ProjectGuid>{4D4D9C30-7815-428A-A01B-735CCF69D859}</ProjectGuid>
    
        <!-- これを以下に変更 <OutputType>AppContainerExe</OutputType> -->
        <OutputType>Library</OutputType>
    
    以下略
    あとは不要なマニフェストがあると警告は出ますがビルドはできます。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 編集済み gekkaMVP 2020年12月5日 9:22
    2020年12月5日 9:21
  • プロジェクト2およびプロジェクト3が、プロジェクト1を参照している構成で、プロジェクト2を起動したらプロジェクト1に遷移する、プロジェクト3を起動したらプロジェクト1に遷移する(遷移する条件は、プロジェクト2とプロジェクト3で違う)形態としたいのです。

    よろしくお願いします。


    2020年12月5日 11:48
  • ナノレスさん、こんにちは。フォーラムオペレーターのKumoです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    すみませんが、ご質問いただいた内容によくわからないんですが、ちょっと確認させていただきます。

    1、ソリューションは3つありますでしょうか。
    2、現時点の状態は何でしょうか。目的は何でしょうか。
    3、gekkaさんからの返答はお役に立ちませんか。

    わたくしはgekkaさんに賛同しますが、それでもうまくいかない場合は、ご説明のほどお願いします。


    どうぞよろしくお願いいたします。 

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年12月7日 7:30
    モデレータ
  • プロジェクト1をクラスライブラリにしmain.xamlを設け、プロジェクト3のMainPage.xamlにLoaded="Page_Loaded"を設け、Page_Loadedルーチンにプロジェクト1のmain.xamlへの遷移を設けることで問題解決となりました。

    • 回答としてマーク ナノレス 2020年12月8日 9:19
    2020年12月8日 9:19