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

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

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

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

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

Xamarin

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

Q&A

解決済

1回答

2640閲覧

Xamlでボタンを追加したい

TrainRain

総合スコア20

C#

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

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

Xamarin

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

0グッド

0クリップ

投稿2018/11/15 05:15

こんにちは。

前提・実現したいこと

Windows10を使ってVisual Studo 2017でXamarinのプロジェクトを作っています。

https://github.com/ytabuchi/Study/tree/master/XFP_ZXingSample
を参考にQRコードを読もうとしています。
内蔵カメラでQRは読めました。
次に別の処理を追加したいので、testボタンを追加したところ、そのボタンが消えました。
ボタンを追加するにはどうしたらよいでしょう?
UWPのUIの操作なので、ScanPageXaml.xamlに追加してもclassが違うので、たぶん動きません。
MainPageを上書きしているところは特定しました。

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

別の処理を追加したいので、testボタンを追加したところ、そのボタンが消えました。

該当のソースコード

xaml

1 <Grid Name="target" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 2 <Grid.RowDefinitions> 3 <RowDefinition Height="500*"/> 4 <RowDefinition Height="50*"/> 5 </Grid.RowDefinitions> 6 <Button Content="Test" Click="Button_Click" FontSize="50" Grid.Row="1" /><!--これを追加した。--> 7 </Grid>

C#

1//App.cs 2namespace XFP_ZXingSample 3{ 4 public class App : Application 5 { 6 public App() 7 { 8 MainPage = new NavigationPage(new ScanPageXaml());//<-ここでMainPageにScanPageXamlを入れて上書きしていると思う。 9 }

C#

1MainPage.xaml.cs 2namespace XFP_ZXingSample.UWP 3{ 4 public sealed partial class MainPage 5 { 6 public MainPage() 7 { 8 this.InitializeComponent(); 9 10 LoadApplication(new XFP_ZXingSample.App()); 11 //明示的に追加。でもすでにtargetがないので追加できない。 12 var button = new Button(); 13 target.Children.Add(button); 14 }

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

Intel Pentium(R) CPU 4415 Y 1.60GHz RAM 8GB Windows10Pro 64bit 1803 17134.345 Microsoft Visual Studio Community 2017 Version 15.8.5 VisualStudio.15.Release/15.8.5+28010.2036 Microsoft .NET Framework Version 4.7.03056 インストールされているバージョン:Community Visual C++ 2017 00369-60000-00001-AA556 Microsoft Visual C++ 2017 Application Insights Tools for Visual Studio のパッケージ 8.13.10627.1 Application Insights Tools for Visual Studio ASP.NET and Web Tools 2017 15.8.05085.0 ASP.NET and Web Tools 2017 ASP.NET Core Razor Language Services 15.8.31590 Provides languages services for ASP.NET Core Razor. ASP.NET Web Frameworks and Tools 2017 5.2.60618.0 For additional information, visit https://www.asp.net/ Azure App Service Tools v3.0.0 15.8.05023.0 Azure App Service Tools v3.0.0 Azure Functions と Web ジョブ ツール 15.8.05023.0 Azure Functions と Web ジョブ ツール C# ツール 2.9.0-beta8-63208-01 C# コンポーネントが IDE で使用されました。プロジェクト タイプと設定に応じて、異なるバージョンのコンパイラを使用できます。 Common Azure Tools 1.10 Azure Mobile Services および Microsoft Azure Tools で使用する共通サービスを提供します。 Extensibility Message Bus 1.1.49 (remotes/origin/d15-8@ee674f3) Provides common messaging-based MEF services for loosely coupled Visual Studio extension components communication and integration. JavaScript Project System 2.0 JavaScript Project System JavaScript 言語サービス 2.0 JavaScript 言語サービス Microsoft Azure Tools 2.9 Microsoft Azure Tools for Microsoft Visual Studio 2017 - v2.9.10730.2 Microsoft Continuous Delivery Tools for Visual Studio 0.4 Visual Studio IDE 内からの Azure DevOps パイプラインの構成を簡略化しています。 Microsoft JVM Debugger 1.0 Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines Microsoft MI-Based Debugger 1.0 Provides support for connecting Visual Studio to MI compatible debuggers Microsoft Visual C++ ウィザード 1.0 Microsoft Visual C++ ウィザード Microsoft Visual Studio Tools for Containers 1.1 ターゲット環境で ASP.NET Core アプリケーションを開発、実行、検証します。F5 キーを押してコンテナーで直接アプリケーションをデバッグ実行するか、Ctrl + F5 キーを押してコンテナーをリビルドせずにアプリを編集して更新します。 Microsoft Visual Studio VC パッケージ 1.0 Microsoft Visual Studio VC パッケージ MLGen Package Extension 1.0 MLGen Package Visual Studio Extension Detailed Info Mono Debugging for Visual Studio 4.11.11-pre (8fb558f) Support for debugging Mono processes with Visual Studio. NuGet パッケージ マネージャー 4.6.0 Visual Studio 内の NuGet パッケージ マネージャー。NuGet の詳細については、http://docs.nuget.org/ にアクセスしてください。 ProjectServicesPackage Extension 1.0 ProjectServicesPackage Visual Studio Extension Detailed Info ResourcePackage 拡張機能 1.0 Visual Studio の拡張機能 ResourcePackage に関する詳細情報 ResourcePackage 拡張機能 1.0 Visual Studio の拡張機能 ResourcePackage に関する詳細情報 SQL Server Data Tools 15.1.61808.07020 Microsoft SQL Server Data Tools TypeScript Tools 15.8.20822.2001 TypeScript Tools for Microsoft Visual Studio Visual Basic ツール 2.9.0-beta8-63208-01 Visual Basic コンポーネントが IDE で使用されました。プロジェクト タイプと設定に応じて、異なるバージョンのコンパイラを使用できます。 Visual F# Tools 10.2 for F# 4.5 15.8.0.0. Commit Hash: 55a3dc3231c95c77f81ee53f7d29152029da7408. Microsoft Visual F# Tools 10.2 for F# 4.5 Visual Studio Code デバッグ アダプターのホスト パッケージ 1.0 Visual Studio Code デバッグ アダプターを Visual Studio でホストするための相互運用レイヤー Visual Studio Tools for Containers 1.0 Visual Studio Tools for Containers VisualStudio.Mac 1.0 Mac Extension for Visual Studio Xamarin 4.11.0.776 (d15-8@1ae9b59d7) Xamarin.iOS と Xamarin.Android の開発を有効にする Visual Studio 拡張機能 Xamarin Designer 4.15.9 (d000f568b) Visual Studio extension to enable Xamarin Designer tools in Visual Studio. Xamarin Templates 1.1.116 (9619170) Templates for building iOS, Android, and Windows apps with Xamarin and Xamarin.Forms. Xamarin.Android SDK 9.0.0.19 (HEAD/a8a3b0ec7) Xamarin.Android Reference Assemblies and MSBuild support. Xamarin.iOS and Xamarin.Mac SDK 12.0.0.15 (84552a4) Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support. ユニバーサル Windows アプリ用 Visual Studio Tools 15.0.28010.00 ユニバーサル Windows アプリ用 Visual Studio Tools を使用すると、電話、タブレット、PC など、Windows 10 を実行している各デバイスで使用できるユニバーサル アプリの単一ビルドを利用できます。これには Microsoft Windows 10 ソフトウェア開発キットが含まれています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

XFP_ZXingSample.UWPは編集しません。
Xamarin.Formsでは共通プロジェクトにUI処理も記述します(今回はXFP_ZXingSample/ScanPageXaml.xamlを編集する必要があります)。

投稿2018/11/15 06:12

_shunsuke_kawai

総合スコア104

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

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

TrainRain

2018/11/15 07:25

え。そうなんですか!? でも、UWPの画面処理をしたいので、PLC(ポータブルクラスライブラリ)である、XFP_ZXingSample/ScanPageXaml.xamlには書けないと思うのですが・・・。 画面処理をするのにもScanPageXaml.xamlに書くのでしょうか?
_shunsuke_kawai

2018/11/15 08:50

はい、そうです。 共通プロジェクトで書いたコントロール等が各プラットフォーム(iOS/Android/UWP etc)で表示されます。 UIの記述も一つにまとめてしまうのがXamarin.Formsの特長です。
TrainRain

2018/11/19 01:48

ご回答ありがとうございます。 まだ書き方がわからないので、補足していただけるととても助かります。 XFP_ZXingSample/ScanPageXaml.xaml(とScanPageXaml.xaml.cs)は共通処理用かと思います。 このScanPageXaml.xaml.csのなかで、UWPやiOS, Androidに依存した処理が必要になったら(なっています)どう処理すればよいのでしょう。 感覚的には最初に質問したとおり、ScanPageXaml.xamlではスキャンだけをして、結果の文字(result.Text)をMainPage.xamlに戻して処理したほうが自然に思えます。 もしScanPageXaml.xamlで処理するとすると、XFP_ZXingSample(移植可能)のPCLプロジェクトにも、Micsoft.NETCore.UniversalWindowsPlatform.dllなどを参照する必要が出てくるのではないかと思います。 Q1)UWP依存でもXFP_ZXingSampleでMicsoft.NETCore.UniversalWindowsPlatform.dllなどを参照して処理するのでしょうか? Q2)result.TextをMainPage.xaml.csに戻す方法を知りたいです。 よろしくお願いいたします。
TrainRain

2018/11/26 06:17

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問