Power AppsPower Platform

【Power Apps】コピペで簡単!おしゃれなポップアップのサンプル

今回の記事では、Power Appsでおしゃれなポップアップ(ダイアログ)を実装していきます。
コピペで簡単に実装することができるため、ぜひご自身のアプリに活用いただければと思います。

スポンサーリンク

実現したいこと

完成イメージは次の通りです。

左上の「ポップアップ表示」ボタンを押すと、おしゃれなポップアップが表示される!

実装方法

今回は2024年8月に一般提供が開始された「コードビュー機能」を使っていきます。
プレビュー機能にはなりますが、他者が作ったコントロールを簡単に自環境に導入できます。

ポップアップ表示ボタンの実装

まずは下のYAMLコードをコピーします。(1行目右端のコピーボタンをご利用ください)

- btnDisplayPopup:
    Control: Classic/Button
    Properties:
      OnSelect: |-
        =// ポップアップを表示する処理
        UpdateContext({locPopupVisible: true})
        // © 2024 Power 365 Medium, Hiromaru
      Text: ="ポップアップ表示"
      BorderColor: =Self.Fill
      BorderThickness: =0
      Color: =Color.White
      Fill: =ColorValue("#1976D2")
      FocusedBorderColor: =ColorFade(Self.Fill, -20%)
      FocusedBorderThickness: =2
      Height: =60
      HoverBorderColor: =Self.HoverFill
      HoverColor: =Color.White
      HoverFill: =ColorFade(Self.Fill, -10%)
      PaddingBottom: =0
      PaddingLeft: =0
      PaddingRight: =0
      PaddingTop: =0
      PressedBorderColor: =ColorFade(Self.Fill, -30%)
      PressedColor: =Self.Color
      PressedFill: =ColorFade(Self.Fill, -20%)
      RadiusBottomLeft: =Self.Height / 2
      RadiusBottomRight: =Self.RadiusBottomLeft
      RadiusTopLeft: =Self.RadiusBottomLeft
      RadiusTopRight: =Self.RadiusBottomLeft
      Size: =16
      Width: =240
      X: =40
      Y: =40

コピーができたら、編集画面のスクリーン上で 右クリック > 貼り付け > コードを貼り付ける(プレビュー)を選択します。

コードの貼り付け(ポップアップ表示ボタン)

すると、ポップアップ表示ボタンが画面に表示されました。

ポップアップ表示ボタンのペースト完了

ポップアップの実装

ポップアップ表示ボタンが実装できたため、次はポップアップ本体を実装していきます。

こちらも同様に、下のYAMLコードをコピーします。(1行目右端のコピーボタンをご利用ください)

- ctnPopup:
    Control: GroupContainer
    Variant: manualLayoutContainer
    Properties:
      Height: =Parent.Height
      Visible: |
        =// 「ポップアップ表示」ボタンを押すとtrue、「OK」または「キャンセル」ボタンを押すとfalseが設定される
        locPopupVisible
      Width: =Parent.Width
    Children:
    - shpPopupBackground:
        Control: Rectangle
        Properties:
          Fill: =RGBA(30, 30, 30, 0.5)
          Height: =Parent.Height
          Width: =Parent.Width
    - ctnPopupCard:
        Control: GroupContainer
        Variant: manualLayoutContainer
        Properties:
          DropShadow: =DropShadow.Regular
          Fill: =Color.White
          Height: =576
          RadiusBottomLeft: =20
          RadiusBottomRight: =20
          RadiusTopLeft: =20
          RadiusTopRight: =20
          Width: =455
          X: =456
          Y: =96
        Children:
        - lblPopupTitle:
            Control: Label
            Properties:
              Text: ="ポップアップタイトル"
              Align: =Align.Center
              FontWeight: =FontWeight.Bold
              Height: =54
              Size: =20
              Width: =397
              X: =29
              Y: =133
        - lblPopupDetails:
            Control: Label
            Properties:
              Text: |-
                ="ここにポップアップの説明が入ります。
                説明の長さによってポップアップの高さや幅を調整して利用してください。"
              Align: =Align.Center
              FontWeight: =FontWeight.Semibold
              Height: =179
              LineHeight: =1.4
              Size: =16
              Width: =397
              X: =29
              Y: =187
        - btnOK:
            Control: Classic/Button
            Properties:
              OnSelect: |-
                =// この下にOKボタンを押した時の処理が入ります

                // ポップアップを非表示にする処理
                UpdateContext({locPopupVisible: false})
                // © 2025 Power 365 Medium, Hiromaru
              Text: ="OK"
              BorderColor: =Self.Fill
              BorderThickness: =0
              Color: =Color.White
              Fill: =ColorValue("#1976D2")
              FocusedBorderColor: =ColorFade(Self.Fill, -20%)
              FocusedBorderThickness: =2
              Height: =60
              HoverBorderColor: =Self.HoverFill
              HoverColor: =Self.Color
              HoverFill: =ColorFade(Self.Fill, -10%)
              PaddingBottom: =0
              PaddingLeft: =0
              PaddingRight: =0
              PaddingTop: =0
              PressedBorderColor: =ColorFade(Self.Fill, -30%)
              PressedColor: =Self.Color
              PressedFill: =ColorFade(Self.Fill, -20%)
              RadiusBottomLeft: =Self.Height / 2
              RadiusBottomRight: =Self.RadiusBottomLeft
              RadiusTopLeft: =Self.RadiusBottomLeft
              RadiusTopRight: =Self.RadiusBottomLeft
              Size: =16
              Width: =240
              X: =107
              Y: =387
        - btnCancel:
            Control: Classic/Button
            Properties:
              OnSelect: |-
                =// この下にキャンセルボタンを押した時の処理が入ります

                // ポップアップを非表示にする処理
                UpdateContext({locPopupVisible: false})
              Text: ="キャンセル"
              BorderColor: =ColorValue("#EF5350")
              Color: =Self.BorderColor
              Fill: =Color.White
              FocusedBorderColor: =Self.Color
              FocusedBorderThickness: =3
              Height: =60
              HoverBorderColor: =Self.BorderColor
              HoverColor: =Self.Color
              HoverFill: =ColorFade(Self.Fill, -5%)
              PaddingBottom: =0
              PaddingLeft: =0
              PaddingRight: =0
              PaddingTop: =0
              PressedBorderColor: =ColorFade(Self.Color, -10%)
              PressedColor: =Self.Color
              PressedFill: =ColorFade(Self.Fill, -10%)
              RadiusBottomLeft: =Self.Height / 2
              RadiusBottomRight: =Self.RadiusBottomLeft
              RadiusTopLeft: =Self.RadiusBottomLeft
              RadiusTopRight: =Self.RadiusBottomLeft
              Size: =16
              Width: =240
              X: =108
              Y: =470
        - icoInfo:
            Control: Classic/Icon
            Variant: Information
            Properties:
              Color: =ColorValue("#1976D2")
              Icon: =Icon.Information
              X: =196
              Y: =48

コピーができたら、編集画面のスクリーン上で 右クリック > 貼り付け > コードを貼り付ける(プレビュー)を選択します。

コードの貼り付け(ポップアップ)

するとスクリーン上には何も表示されないものの、ツリービューには「ctnPopup」というコントロールが表示されたことがわかります。

ポップアップコンテナのペースト完了

この状態で編集画面右上のアプリのプレビューボタンを押して、

アプリのプレビュー

左上の「ポップアップ表示」ボタンを押すと…

ポップアップ表示ボタンの押下

ポップアップが表示されたことがわかります。

ポップアップの表示

また、「OK」または「キャンセル」ボタンを押すとポップアップは非表示になります。

ポップアップの非表示

仕組み

ポップアップが表示/非表示になるまでの流れを簡単にお伝えすると、

1. ポップアップ表示ボタン(btnDisplayPopup)を押したタイミングで、locPopupVisibleという変数に true を代入

ポップアップ表示ボタンの押下
ポップアップ表示ボタンのOnSelectプロパティ

2. ポップアップ(ctnPopup)のvisibleプロパティ内に設定したlocPopupVisibleも true になり、ポップアップが表示される

ポップアップのVisibleプロパティ(true)
ポップアップの表示

3. 「OK」または「キャンセル」ボタンを押したタイミングで、locPopupVisibleという変数に今度は false を代入

ポップアップの表示
OKボタンのOnSelectプロパティ

4. ポップアップ(ctnPopup)のvisibleプロパティ内に設定したlocPopupVisibleも false になり、ポップアップが非表示となる

ポップアップのVisibleプロパティ(false)
ポップアップ表示ボタンの押下

まとめ

おしゃれなポップアップをコピペで実装する方法をお伝えしました。
ポップアップの幅や高さ、表示テキストをお好みでカスタマイズしてご利用ください。

今回のポップアップ以外にも、コピペで簡単に実装できるアプリ・フローを以下にまとめています。
ぜひご活用ください。

スポンサーリンク
Hiromaru

普段からPower Platform・SharePointの技術を広めています!
デザインに力を入れて、見やすい・分かりやすい記事を投稿していきます

Hiromaruをフォローする
シェアする
Hiromaruをフォローする
タイトルとURLをコピーしました