eXtensible Application Markup Language Microsoftが開発した、次世代アプリケーション向けマークアップ言語である。 Windows Presentation Foundation(WPF, 開発コードネームAvalon)によるアプリケーション、コンテンツ開発等において使用される。
Windowsアプリでラベル印刷のアプリを作りたいが、レイアウト作成が面倒。と、億劫になっていたところ、XAMLで簡単に印刷レイアウトを作成し印刷できるみたいので簡潔にまとめてみました。 WPFライブラリ を使用していますが WPFアプリ のみならず、Windows Forms でも使用可能です。 印刷サイズの変更は可能なので、A4で帳票作成なども出来ます。設定方法も記載しますので、適宜変更してください。 ユーザーコントロールライブラリの作成 1、WPFアプリ もしくは Windowsフォームアプリ を作成 2、ユーザーコントロールライブラリを作成[ソリューション で右クリック]→[追加]→[…
今更ながら趣味でWPF(Windows Presentation Foundation)を始めました. その過程でXAML(Extensible Application Markup Language)を書き始めたのですが、かなり独特な言語だったのでその備忘録第一弾です. 開発言語はC#を想定します. XAMLとWPFの関係 XAMLを調べる前はXAML=WPFだと思っていたのですが、どうやらそうではないようです. XAMLはあくまでUI(のプロパティや他のUIとの関係)をXMLチックに書ける言語であり、XAMLを利用できる技術(環境)は以下のようなものがあります. 名称 特徴 WPF .NE…
かつてこんな記事を書きました。 bignight.hatenablog.com それには例外がありました。 ContentControl経由でViewを呼び出すとViewModelを共有してくれない😱 さあどうする?というわけで実験してみました。 (ちなみにContentControl経由で子コントロールを呼ぶ方法は以下の記事を参考にしてください。今回はDataTemplate経由で子コントロールを呼びます。) bignight.hatenablog.com簡単なコードです Viewはこんな感じ <Window x:Class="WpfApp1.Window1" xmlns="http://s…
ご無沙汰しております。ここは本来技術ネタを書く場所だったんですが、方向がずれてきてまた技術に返り咲こうかなと。 昔の記事を見てると色々やってるもんですね。ボタンを動的に配置したい、トリガーでStyleを変更したい、アニメーション云々。 久しぶりにWPFに戻ってまいりました。 昔に比べてDataTemplateの記載は増えた気がする。現場では当たり前のように使われるDataTemplate。動的配置だいだいだいすき。 でも気になることがあるんですよね。DataTemplateの記事を見てるとItemsControl(ListBoxでもいいが)の記載ばかり目に入る。 そうじゃないんだ、DataTe…
はじめに WPFでダイアログ表示を行う方法を備忘録として残したいと思います。 前提 今回の記事はPrismを用いていることが前提となります。 ユーザーコントロール画面を新規作成 まずはポップアップで表示するユーザーコントロール画面を新規に追加します。 プロジェクトを右クリック > 追加 > ユーザーコントロールをクリックします。 Viewsフォルダに新規のページが出来ていることを確認した後、実際の画面を作成していきます。 今回は以下のようなXAMLを書いてみました。 <UserControl x:Class="ExtendSettingsView.Views.HelpPage" xmlns="…
WPFでUIの表示切替のモードを選択するコンボボックスを作成するときに、コンボボックスの値をenumで定義できれば、内部処理の条件判定などがいい感じになるのでは?と思ったので色々と調べてみたところ、PrismのコミッターであるBrian Lagunasさんの解説動画がYoutubeにありました。 マークアップ拡張について、何となくの理解でいると応用が利かなそうなので、細かいところを勉強用にメモを残します。 Brian Lagunasさんの解説動画 詳しい解説やソースコードはBrian Lagunasさんの動画を参照してください。 enumとコンボボックスのバインドについて解説されています。 h…
前回より MAUI の Shell に触れ始めました。.NET MAUI のShell は、基本的に Xamarin.Forms のShell と機能が同じようで、モバイルアプリケーションの基本機能であるナビゲーション・・・平たく言えば、モバイルアプリの画面(ページ)遷移や検索等の機能を統合的に管理し、かつ操作を標準化する機能なようです。今回は複数のページを Shell でどのように遷移するのか、試してみたいと思います。 画面遷移の挙動確認用として、ContentPage をプロジェクトに三つ追加してみます。新規の MAUI プロジェクトを作成し、ソリューションエクスプローラでプロジェクトを選…
昨日の記事では、.NET MAUI で MVVM の実装を試みました。しかし現在様々なベンダーから MVVM デザインパターンをサポートするフレームワークが提供されており、これらを使えば容易にMVVM での開発を行なえます。今回は、CommunityToolkit を使って、.NET MAUI のサンプルを MVVM 化したいと思います。 docs.microsoft.com CommunityToolkit はプラットフォームやランタイムに依存せず、高パフォーマンスを期待できるフレームワークです。Visual Studio で .NET MAUI のプロジェクトを新規作成後、ソリューションエ…
先週に引き続き、.NET MAUI の記事です。 今回は ,NET MAUI 新規プロジェクト作成時のイベント処理を ViewModel を設け、MVVM のデータバインディングによる更新へ変更します。 新規プロジェクト作成時、ビューのカウンター処理は、ボタンクリックイベント内で SemanticScreenReader.Announce メソッドで更新されています。 ボタンクリックイベントの実装 SemanticScreenReader.Announce に関する詳細はこちら。 docs.microsoft.com これを ViewModel とのバインドに変更します。 まずはプロジェクトに…
前回に引き続き、.NET MAUI の記事です。 当方、Android・Mac は初心者なので、その辺を考慮して記事を読んで頂けば幸いです。 今回は iOS を選択して、Mac でサンプルを実行します。 まず下準備として、Mac に Visual Studio 2022 for Mac Preview をダウンロード・インストールします。 Visual Studio の MAUI プロジェクトのデバッグ実行をドロップダウンで「iOS Remote Device」に変更して、デバッグ開始します。 「リモートデバイス」をクリックすると、最初にガイダンスが表示されます。以下のアナウンスに従って、Ma…
XAMLを使用して帳票を作成する際に、QRコードを表示したいがZXingだとImageの変換が必要となるらしいので、この際ZXingで新しく実装されたSVG出力の機能でQRコードを表示してみました。解像度的にもSVGの方が良い為。 1次元バーコードの表示も併用可能です。 ソースコード NuGetパッケージマネージャー より ZXing.NET (Ver.0.16.6以上)をインストールしてください。今回は Ver.0.16.9 を使用しています。 デザイン (UserControl1.xaml) <!--QRCode--> <Path Margin="4.1cm, 1.7cm, 0, 0" W…
プロジェクトテンプレート Visual Studio 用のプロジェクトテンプレート Direct3D Game Visual Studio templates (Redux) | Games for Windows and the DirectX SDK blog Github で管理されている。 GitHub - walbourn/directx-vs-templates: Direct3D Visual Studio Templates Wiki の「VS 2019 / VS 2022」をクリックすると、VS2019/VS2022向けの vsix ファイルをダウンロードできる。Direct…
先日 winget でインストールできるもの一覧を出したのですが、6,000 件を超えていて見切れません......。 高速スクロールしつつ目に留まったものだけ載せてみます。いったんここまで見るものを減らしてから見ていきたい。 注目は Sushi tp7.Sushi 0.5.1 winget と IP Messenger for Win FastCopy.IPMsg 5.6.2 winget なんだこれ、きになる。 ------------------------------------------------------------------------------------------…
ChatGPTでプログラム生成します。生成するプログラムは、C#のWPFで、画像のオブジェクトを検出するプログラムです。
ChatGPTでプログラム生成④に追加でChatGPTへ質問し、もう少し整理されたソースリストを入手します。
ChatGPTへ新規の質問をいくつか投げてみましょう。 ここでは、C#とOpenCVSharpを利用し、簡単なフィルター処理のプログラムをChatGPTへ生成させます。
ChatGPTへ質問し、WPFへ対応したプログラムを生成します。
静電容量式タッチセンサでステッピングモータを動作させます。タッチセンサの実験、モニタ用のWindowsアプリ、ステッピングモータドライバICへのパルス出力法について記載しています。 資料1*1、資料2*2、資料3*3 全体フロー 静電容量式タッチセンサ(CTSUb) 計測方法 計測条件と計測時間 CTSU設定フロー CTSU割り込みフロー 実験 シリアル通信 シリアル・アレイ・ユニット (SAU) UART1の初期化フロー 送受信処理 コマンドとレスポンス モニタ用ソフト ステッピングモータ 動かし方 タイマアレイユニットの方形波出力 タイマアレイの初期化フロー 出力波形 ファイル一覧 全体フ…
従来の ファイル エクスプローラー (クラシックスタイル) 逆行するようなTipsはあまり投稿したくなかったのだけれど、こういうスタイルを好む人もいると思うので。 無用に幅をとっていたコマンドバーが無くなりスッキリする。 心なしかレスポンスも上がるような・・・? ちなみに、どこぞのツールで行っているようなシェルをクラッシックスタイルにするというものではありません。クラシックスタイルにするのはファイルエクスプローラーのみです。 クラシックスタイル有効 Reg add "HKCU\Software\Classes\CLSID\{2aa9162e-c906-4dd9-ad0b-3d24a8eef5a…
Windows App SDK(WinUI3)でコンポーネントをUser Controlとして作る - dullwhaleのメモ帳 の発展的な内容として、作成したUser ControlにXAMLから指定できるプロパティを実装する。 この記事ではUser ControlにXAMLからstringのプロパティと関数のプロパティを渡す部分を実装する。 また、実用性やUXよりも分かりやすさを優先している。 厳密には間違いである点が多々あるから、概要を掴んだらMSのドキュメントを見よ。 XAMLプロパティの制限 C#では関数をプリミティブ型の変数などと同等に扱わない。 C#の関数はfirst clas…
おはようございます。 今日はタイトルの通り、「体系的なWPF学習記事」のネタを考えます。 前提 他サイトで紹介されているWPF記事を剽窃(ひょうせつ)しない これは当然ですね。剽窃したらアカン。 というか他の人の解釈を鵜呑みにせず、自分自身が十分WPFについて理解しているつもりなので(自信過剰かもしれません)自分で言葉を紡ぐ方が効率よく説明できるのではと思います。 可能な限り図説する(特にクラス階層) これはもしこのブログのWPF学習記事を薄い本化するときに予め図示しておいた方がコンテンツの水増しができるのでは?と思ったからです。 まあ、WPFは水増ししなくても十分なコンテンツ量になると思いま…
ランキング参加中プログラミング RelayCommands どのように機能するか (How it works) ICommand の働き (Working with ICommand) Sample AsyncCommands どのように機能するか (How it works) 非同期コマンドの働き (Working with asynchronous commands) Sample 参考 RelayCommands RelayCommand と RelayCommand<T> は ICommand の実装で、メソッドやデリゲートを view に公開することができます。これらの型は view…
概要 WiXSharpというインストーラ作成用のライブラリの話です。以前の記事でも少し触れましたが、なかなか癖が強く、すぐにやれそうなことも意外と工夫が必要だったりします。 その中で、「NuGetでライブラリを追加したい」という、よく必要になる上に簡単にやれそうな作業で意外と工夫が必要だったので、今回はそのやり方を書きます。 最初に結論まとめ ビルド先に出力されたdllの相対パスを、msi定義部分のDefaultRefAssembliesに手動で追記すればOKです ちょっと工夫すると、自動でも追記できます デフォルトのビルド先だとソリューション構成ごとにパスが変わってしまうので、ビルド後イベン…
概要 Windowsインストーラを作ろうとした場合に、WiX Toolsetという有力な選択肢があります。そのWiX Toolsetをさらに作りやすくするWiXSharpというライブラリがあります。 しかしこのWiXSharpはなかなか癖が強く、前提条件がピタリはまると大きな力を発揮しますが、外れているとかえって苦労を呼ぶ場合があります。そのメリット・デメリットや、どういう人に向いているかというところを私の考えでまとめます。 最初に結論まとめ 説明 ※WiX ToolsetをWiX、Windowsインストーラをmsiと略記します msiを本気で作ろうとすると、やはり最初に選択肢に挙がるのはIn…