2023-04-01から1ヶ月間の記事一覧
C++ で WinUI 3 ライブラリを使う この記事は試行錯誤の結果をまとめたもので、WinUI の正しい使い方ではないかもしれません。 下図のようにTextBox に入力した文字列をもう一方のTextBoxに反映する方法を考えます。 XAMLはこんな感じです。入力用のTextBox…
C++ で WinUI 3 ライブラリを使う データバインディングできるモデル (class) をプロジェクトに追加しようとしたとき、その方法がわからず苦労したので紹介します。 Visual Studio のソリューションエクスプローラを開き、プロジェクトを選択した状態で右ク…
C++ で WinUI 3 ライブラリを使う NavigationView の IsSettingsVisible 属性を True にすると設定ボタンを表示します。 <NavigationView IsSettingsVisible="True"> メニューを選択したときのイベントハンドラでは、IsSettingsSelected, IsSettingsInvoked 関数で設定ボタンが押されたか判断できます</navigationview>…
C++ で WinUI 3 ライブラリを使う 新しい UserControl をプロジェクトに追加しようとしたとき、その方法がわからず苦労したので紹介します。 Visual Studio のソリューションエクスプローラを開き、プロジェクトを選択した状態で右クリックのポップアップメ…
C++ で WinUI 3 ライブラリを使う NavigationVeiw のメニューを選択したときのイベントを処理する方法を紹介します。 NavigationView のメニューを選択すると ItemInvoked イベントが発生します。また選択しているメニューが変化したときは SelectionChanged…
C++ で WinUI 3 ライブラリを使う ToggleSwitch のラベルをボタンの左側にするには FlowDirection に RightToLeft を設定します。 <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="4"> <ToggleSwitch BorderBrush="Red" BorderThickness="1"/> </toggleswitch></stackpanel>
C++ で WinUI 3 ライブラリを使う 新しい Page をプロジェクトに追加しようとしたとき、その方法がわからず苦労したので紹介します。 Visual Studio のソリューションエクスプローラを開き、プロジェクトを選択した状態で右クリックのポップアップメニューを…
C++ で WinUI 3 ライブラリを使う アプリを起動したときのウィンドウサイズは、MainWindow のコンストラクタでAppWindow::Resize を使って指定できます。 #include <winrt/Microsoft.UI.Interop.h> #include <winrt/Microsoft.UI.Windowing.h> MainWindow::MainWindow() { InitializeComponent(); auto hWnd = stuff::getHwn</winrt/microsoft.ui.windowing.h></winrt/microsoft.ui.interop.h>…
C++ で WinUI 3 ライブラリを使う XAML ファイルのメニュー名やボタン名などに日本語を使うとアプリを実行したときに文字化けします。 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <Button x:Name="myButton" Click="myButton_Click">ボタン押してね</Button> </StackPanel> このような時は XAML ファイルを UTF-8 の文字コードで保存しましょう。 XAMファイルを開いた状…
C++ で WinUI 3 ライブラリを使う ウィンドウハンドルを取得する方法を紹介します。 ウィンドウハンドルは IWindowNative::get_WindowHandle で取得できるので、関数にしてみました。 また IWindowNative クラスは microsoft.ui.xaml.window.h で定義されて…
C++ で WinUI 3 ライブラリを使う XAMLで定義した要素のインスタンスに C++ のコードからアクセスするには、XAML要素に Name 属性をつけます。そうすると XAMLのコンパイル時に Generated Files下にSetter/Getter 実装したファイルが作られ、C++ のコードか…
C++ で WinUI 3 ライブラリを使う Button などのコントロールにイベントハンドラを追加したかったのですが、その方法がわからず苦労したので紹介します。 Visual Studio で XAMLファイルを開き、XAML要素にイベントの属性名と = を入力すると <新しいイベン…