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

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

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

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

2回答

1591閲覧

Xamarin.WPFでダイアログの操作がキーボードで出来ない

Velmy

総合スコア17

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2019/03/29 06:24

Xamarin.Formsで操作確認をするのにDisplayAlertを使っています。
UWPではダイアログ表示後にカーソルキーやタブキーを押下することでフォーカスが移動しますが、WPFではできません。

C#

1 public partial class MainPage : ContentPage 2 { 3 public MainPage() 4 { 5 InitializeComponent(); 6 7 Appearing += MainPage_Appearing; 8 } 9 10 private async void MainPage_Appearing(object sender, EventArgs e) 11 { 12 if(await DisplayAlert("確認", "キーボードで操作できますか?", "はい", "いいえ")) 13 { 14 // 処理 15 } 16 } 17 } 18

マウスカーソルでは選択できますが、キーボードで操作できるようにしたいです。
方法がありましたら教えてください。

Windows10 Pro
Microsoft Visual Studio Community 2017 15.9.9
Xamarin.Forms 3.6.0.264807
Xamarin.Forms.Platform.WPF 3.6.0.264807

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

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

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

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

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

guest

回答2

0

ベストアンサー

現状、サポートされていません。

ちなみに、UWP版では組み込みのAlertDialog(DisplayAlert)、Flyout(DisplayActionSheet)を使っています。よって、通常のUWPアプリ同様にキーボード操作できています。
一方、WPF版では、1つのウィンドウの中でダイアログ用のContentControlを、Page表示用のコントロールの手前に表示することでダイアログを表現しています。

おそらくウィンドウでキー入力イベントを適切に処理すればUWPの様にふるまうことも可能ではないかと思うので、意欲があればPull Requestしてみてください。以下のソースコードから読み始めるといいと思います。

投稿2019/03/29 09:03

P3PPP

総合スコア359

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

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

Velmy

2019/03/29 09:24

回答ありがとうございます。 ソース解析、変更はできるかどうかわかりませんが、この週末に挑戦してみます。
guest

0

Rg.Plugins.Popup というライブラリがあります。

これは、オリジナルのダイアログボックスを作成できる、というものですが、DisplayAlert の代わりに、このライブラリを使ってアラートダイアログボックスを自作するという方法があります。

Xamarin.Forms の Page をダイアログボックスとして使用できるので、DisplayAlert のプラットフォーム固有の仕様に左右されない、共通な見た目と挙動になります。

Xamarin.Forms on WPF で通常の画面ではキーボード操作に問題が無いのであれば、Rg.Plugins.Popup によるダイアログボックスを WPF で動かしたときも、キーボード操作に問題が無いと思われます。

このライブラリ自体が WPF に対応しているかも含めて動作未確認ですが、情報提供まで。

投稿2019/03/29 10:23

amay077

総合スコア1075

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

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

Velmy

2019/03/29 12:30

コメントありがとうございます。 試してみましたが、WPFではキーボードに反応しませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問