質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
UWP

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

Scheme

Schemeは、Lispから派生したプログラミング言語の一つであり、仕様または実装を指す場合もあります。言語自体の仕様はシンプルで、関数型言語として理解しやすいことから記号処理などで主に用いられている言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

1637閲覧

C#でUWPのプログラムの実行とプロトコルごとに既定のアプリを選ぶの実行の動作の違い

aico21

総合スコア1

UWP

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

Scheme

Schemeは、Lispから派生したプログラミング言語の一つであり、仕様または実装を指す場合もあります。言語自体の仕様はシンプルで、関数型言語として理解しやすいことから記号処理などで主に用いられている言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2021/07/02 05:55

前提・実現したいこと

VisualStudio2019で、C#/UWP で 初めてプログラムを作ってみたのですが
まだテキストボックスを張り付けただけです。
それとマニフェストで宣言のところに、プロトコルを追加して名前にaicotestを追加しました。

ローカルコンピュータで実行とすると問題なく動作するのですが、ファイル名を指定して実行のところに、aicotest:test
で関連付けプログラムを実行しても、スプラッシュスクリーンが表示してスプラッシュスクリーンが消えません
何らかの制限があるのでしょうか?

発生している問題・エラーメッセージ

エラー等は出ていませんが、スプラッシュスクリーンが表示されたままです。

該当のソースコード

<Page x:Class="AICOTEST.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:AICOTEST" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> <TextBox x:Name="textBox" HorizontalAlignment="Left" Margin="256,236,0,0" Text="TextBox" TextWrapping="Wrap" VerticalAlignment="Top" Width="346"/> </Grid> </Page>

試したこと

インストールしてみたり、WEBからのリンクの実行いろいろやってみましたが、アプリは起動するのですが、やはりスプラッシュスクリーンが表示されたままです。
ローカルコンピュータからのデバッグや、スタートのアイコンから起動すると問題は発生しません。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

プロトコル起動時はテンプレートとして書かれた App.xaml.csのprotected override void OnLaunched(LaunchActivatedEventArgs args) を通らないため、ウィンドウ表示コンテンツが初期化されずスプラッシュスクリーンで固まったままになります。

プロトコル起動も含めてウィンドウの表示コンテンツを作成させるには以下のようにApp.xaml.csの一部を書き換えてみてください。

csharp

1protected override void OnLaunched(LaunchActivatedEventArgs args) 2{ 3 OnActivated(args); 4} 5 6protected override void OnActivated(IActivatedEventArgs args) 7{ 8 Frame rootFrame = Window.Current.Content as Frame; 9 10 // ウィンドウに既にコンテンツが表示されている場合は、アプリケーションの初期化を繰り返さずに、 11 // ウィンドウがアクティブであることだけを確認してください 12 if (rootFrame == null) 13 { 14 // ナビゲーション コンテキストとして動作するフレームを作成し、最初のページに移動します 15 rootFrame = new Frame(); 16 17 rootFrame.NavigationFailed += OnNavigationFailed; 18 19 if (args is IActivatedEventArgs activatedEventArgs 20 && activatedEventArgs.PreviousExecutionState == ApplicationExecutionState.Terminated) 21 { 22 //TODO: 以前中断したアプリケーションから状態を読み込みます 23 } 24 25 // フレームを現在のウィンドウに配置します 26 Window.Current.Content = rootFrame; 27 } 28 29 30 if (args is LaunchActivatedEventArgs launch 31 && launch.PrelaunchActivated == false) 32 { 33 if (rootFrame.Content == null) 34 { 35 // ナビゲーションの履歴スタックが復元されていない場合、最初のページに移動します。 36 // このとき、必要な情報をナビゲーション パラメーターとして渡して、新しいページを 37 // 作成します 38 rootFrame.Navigate(typeof(MainPage), launch.Arguments); 39 } 40 } 41 else if (args is ProtocolActivatedEventArgs protocol) 42 { 43 // TODO: protocol.Uri を使用してプロトコル起動を処理する 44 } 45 46 47 // 現在のウィンドウがアクティブであることを確認します 48 Window.Current.Activate(); 49}

投稿2021/07/02 11:51

tor4kichi

総合スコア763

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問