Loading [MathJax]/jax/output/HTML-CSS/config.js

Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

C# Xamarin

Xamarin.FormsでHelloworldする手順+Buttonコントロール追加のサンプルコード紹介

投稿日:2020年8月29日 更新日:

<目次>

(1) Xamarin.FormsでHelloworldする手順
 (1-1) Xamarin.Formsプロジェクト構成の概要
 (1-2) MainPage.xamlの修正
 (1-3) MainPage.xaml.csの修正
 (1-4) 疎通確認

(1) Xamarin.FormsでHelloworldする手順

当記事ではXamarin.Formsの新規プロジェクトを作成した後に、少しコードを追加して「Helloworld」する手順を紹介します。Xamarin.Formsの新規プロジェクトの作り方については下記記事にて紹介しています。
https://rainbow-engine.com/xamarin-create-project/

(1-1) Xamarin.Formsプロジェクト構成の概要

修正に入る前に、まずはプロジェクト全体の構成について少し触れさせて頂きます。

(1-1-1) プロジェクトの構成概要

Xamarin.Formsは主に2つのプログラムが中心となっています。画面(UI部分)が「XAML」で定義されており、その背後のロジック(プログラム)部分が「C#」で定義されており、連携して動きます。

XAML部分は具体的には「MainPage.xaml」というファイル名で、C#部分(=コード・ビハインド)は「MainPage.xaml.cs」というファイル名でそれぞれ作られています(※他にも構成するプログラムがありますが、今回はHelloworldにおいて使う部分のみの紹介に留めます)

(図111)

今回は上記2つのプログラムに対して、下記の変更を行います。
①「XAML」にボタンを新規に追加する
②「C#」にそのボタンを押した際の処理を追加する

(図112)

コード・ビハインドとは?

「コード・ビハインド」とはオブジェクト指向のプログラミング等において「UI部分」と「ロジック部分」(プログラム)とを別々のファイルに分ける技術です。この技術はASP.NETやXAMLといった、Microsoftの開発基盤において使われており、デザイナーとプログラマが独立して働く事を可能にしています。

目次にもどる

(1-2) MainPage.xamlの修正

デフォルト状態(新規プロジェクト作成時)から以下の点を変更しています。

<修正> Labelコントロールにx:Name属性を追加(11行目)。これはC#側でラベルを操作する際に使う名前になります。
<追加> Buttonコントロールを丸ごと追加(17行目~20行目)。ボタン押下の際のイベントハンドラは「Button_Clicked」という名前になります。
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  4. xmlns:d="http://xamarin.com/schemas/2014/forms/design"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. mc:Ignorable="d"
  7. x:Class="IT0118_App1.MainPage">
  8.  
  9. <StackLayout>
  10. <!-- 修正: x:Name属性を追加(11行目) -->
  11. <Label x:Name="label"
  12. Text="Welcome to Xamarin.Forms!"
  13. HorizontalOptions="Center"
  14. VerticalOptions="CenterAndExpand" />
  15. <!-- 追加: Buttonコントロールを追加(17行目~20行目) -->
  16. <Button Text="Button_ChangeText"
  17. Clicked="Button_Clicked"
  18. HeightRequest="100"
  19. WidthRequest="200" />
  20. </StackLayout>
  21.  
  22. </ContentPage>

<各項目の説明>

項目 説明
<StackLayout> ・コントロール(フォーム部品)を縦方向に並べて表示するレイアウトです。
<Label>コントロール ・「x:Name」属性を追加で指定しましたが、この「x:Name」属性の値を利用して、ロジック側(プログラム側)からもこのコントロールにアクセスする事が可能です。
・具体的にはクラスとして扱う事ができ、例えば「label.Text = “Hoge”」のように「labelクラスのText変数」の扱いでアクセスが可能です。
<Button>コントロール ・ボタンがクリックされた(Clicked)際に発動するイベントハンドラとして「Button_Clicked」を指定しています。
・イベントハンドラの内容については「MainPage.xaml.cs」の方に記述します。

(図121)修正イメージ

目次にもどる

(1-3) MainPage.xaml.csの修正

デフォルト状態(新規プロジェクト作成時)から以下の点を変更しています。

<追加> ・Button_Clickedのイベントハンドラを追加し、テキストの値書き換えとサイズ変更を行っています。
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Xamarin.Forms;
  8.  
  9. namespace IT0118_App1
  10. {
  11. // Learn more about making custom code visible in the Xamarin.Forms previewer
  12. // by visiting https://aka.ms/xamarinforms-previewer
  13. [DesignTimeVisible(false)]
  14. public partial class MainPage : ContentPage
  15. {
  16. public MainPage()
  17. {
  18. InitializeComponent();
  19. }
  20.  
  21. //追加①:Button_Clikckedの
  22. private void Button_Clicked(object sender, EventArgs e)
  23. {
  24. label.Text = "Welcome to Xamarin.Forms Ranbow Planet!";
  25. label.FontSize = 40;
  26. }
  27. }
  28. }

(図131)修正イメージ

目次にもどる

(1-4) 疎通確認

①上記の修正を行った後にデバッグ(F5)を押下
(図141)

②エミュレータ画面のボタンを押下
(図142)

(操作動画)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-C#, Xamarin

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

ASP.NETのViewBagとは?構文やサンプルプログラムもご紹介

  <目次> (1) ASP.NETのViewBagとは?構文やサンプルプログラムもご紹介  (1-1) 概要  (1-2) 構文  (1-3) サンプルプログラム (1) ASP.NETの …

Visual Studioのプロジェクトを別ソリューションに移動する手順

  <目次> (1) Visual Studioのプロジェクトを別ソリューションに移動する手順  (1-1) プロジェクトを別ソリューションに移動する手順  (1-2) 参考①:「.cspr …

C#のIListとは?Listとの違いや使いどころもご紹介

<目次> (1) C#のIListとは?Listとの違いや使いどころもご紹介  (1-1) IListやIList<T>とは?  (1-2) Listとの違い  (1-3) IListの利 …

ASP.NETでビュー(View)に複数のモデル(Model)を連携する方法

  <目次> (1) ASP.NETでビュー(View)に複数のモデル(Model)を連携する方法  (1-1) やりたい事の整理  (1-2) ViewModelを使った複数モデルの連携 …

C#のDB接続時のエラー(provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)

<目次> (1) 記事の目的  (1-1) エラー概要  (1-2) エラー原因  (1-3) エラー対策   (1-3-1) SQLServer:リモート接続を有効化   (1-3-2) SQLSe …

  • English (United States)
  • 日本語
S