nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

WPF

WPFオブジェクトのライフサイクル

WPF

アプリケーションの開始から終了までのイベントの発生順を整理しました。 クラス イベント 補足 Application コンストラクタ Application Startup Application Navigating MainWindow コンストラクタ MainWindowViewModel コンストラクタ MainWindow DataCon…

Visual Studio 2019で始める「WPF on .NET Core 3.0」開発 というタイトルで登壇してきました

「Visual Studio 2019 Launch Event in Tokyo.」で、Visual Studio 2019で始める「WPF on .NET Core 3.0」開発 というタイトルで登壇してきました。 資料はこちら Visual Studio 2019で始める「WPF on .NET Core 3.0」開発 from Atsushi Nakamura www.slides…

WPFでHoge.Focus()を読んでもフォーカスが当たらない場合

Dispatcher.BeginInvokeを介して呼び出すと期待通り動作することがあります。 ↓のような感じで。 Dispatcher.BeginInvoke(new Action(() => { MyTextBox.Focus(); MyTextBox.SelectAll(); }));

Visual Studio 2019でBlend for Visual Studio SDK for .NETを使う方法

本稿は2019年2月10日現在の情報です。随時変更されると思います。 16.0.0 Preview 2.2時点ではVisual Studioからインストールすることができない 公開インストーラーは4.0までしかない NuGetには個人が公開したものしかなくライセンスが不明瞭(物は正規のも…

Visual Studio 2017でBlend for Visual Studio SDK for .NETを使う方法

インストーラーを起動して個別コンポーネントからインストールします。 個別コンポーネントの中の「SDK、ライブラリ、およびフレームワーク」の中の「Blend for Visual Studio SDK for .NET」をインストールする つぎのパスにインストールされるので、必要な…

XAMLでstaticなプロパティをバインドする

いつも忘れて過去のコードを探しに行くのでメモを。

CodeZineさんで「実践WPF業務アプリケーションのアーキテクチャ」という記事を書かせていただきました。

CodeZineさんで「実践WPF業務アプリケーションのアーキテクチャ」という記事を書かせていただきました。 実践WPF業務アプリケーションのアーキテクチャ ~ マイクロソフト公式サンプルデータベースAdventureWorksを題材に 概要編 実装編 マイクロソフトさん…

Prism for WPF で非表示となったViewのインスタンスを破棄する設定

Prism for WPFではRegionという機能を利用することで、画面遷移実装する事ができます。具体的にはこちらをご覧ください。 さて、Regionを利用して画面遷移した場合、デフォルトの振る舞いではViewやViewModelのインスタンスは、一度生成されると以後はキャッ…

WPF&xUnitでテストコードからViewオブジェクトを生成する方法

例えば次のコードがあったとします。 [Fact] public void WhenClosed() { var window = new Window(); } これを実行すると次のようなエラーがでます。 UIはテストしないんじゃないの?と言われそうな気もしますが、Windowに貼り付ける汎用Behaviorをライブラ…

Prism 6.3.0がリリースされました

去年末からリリースの待たれていたPrism 6.3.0が先ほどリリースされました。 https://github.com/PrismLibrary/Prism/wiki/Release-Notes-6.3.0 今回のリリースはXamarinから見ると非常に多くの魅力的な機能追加が含まれています。 画面遷移時に、遷移前処理…

PrismでViewModelがバインドされないときの調査方法

私も良くやるので、もっとも有効な調査方法をさらっと書いておきます。

PrismでViewとViewModelのアセンブリを分けたい場合

なんらかの理由で、ViewとViewModelのアセンブリを分割したいことがあるかと思います。 ViewModelからViewをうっかり呼ばせたくない ViewModelをきちっと分離して複数のViewから再利用したい なんだかカバレッジでViewModelを綺麗に100%にしたいなあ 趣味 な…

System.Drawing.BitmapとImageSourceを相互変換する

WPFで利用されている画像オブジェクトであるImageSourceと、WinFormsなんかで利用しているSystem.Drawing.Bitmapを相互変換したい場合がたまにあるため、ここにメモを残しておきます。

WPFでの画像処理の基本

WPFではそれまでのWinFormsとは違い、WICベースのImageSourceクラスやBitmapImageクラスなどを利用して画像処理を行います。 Windows Imaging Component - Wikipedia ただ、あまり情報が少ないというか、「.NETで画像処理=System.Drawing」な情報ばかりでて…

Prism for Xamarin.Forms入門 コラム01:PrismとDIコンテナ

さて、前回はPrism.FormsのHello, Worldの記事を書かせていただきました。 nuits.hatenadiary.jp 今回以降は、いよいよ個々のエッセンスを掘り下げて行きたかったのですが...どの話をするにしても、「なぜその機能が必要なのか?」を説明しようとすると、ど…

WPFのRenderTransformとLayoutTransformの違いについて

WPFのTransformクラスには画面要素を変形するためのいくつかの機能が用意されており、拡大縮小なんかを簡単に実現することができます。 仕事がら、これを使って画像ビューアなんかを良く作っているのですが、うっかりしていて少しハマったのでメモを残してお…

WPFやXamarinのICommandを改めて整理する

ICommandとはなにか ICommandの概要 void Execute(object parameter) bool CanExecute(object parameter) event EventHandler CanExecuteChanged; RelayCommand・DelegateCommandとはなにか DelegateCommandの簡単な利用方法 ICommandとはなにか XAMLで発生…

Xamarin.Formsでイベントに反応してCommandを実行するBehaviorを書いてみた

数日前にAyaseってIDのオータガーさんと、下のような会話をしました。 @AyaseSH TriggerでOnAppearingイベント捕まえてCommandバインディングとかじゃ上手くいかない感じですかね?それともOnAppearingの実行中の状態(始まり~終わりまで)を正確に欲しい案…

WPFのBindingのElementNameとx:Referenceの違いについて教わりました

昨日ブログを公開したところ、Xamarinの中の先生にElementNameとx:Referenceの違いについて気になる点を教えていただきました。 というわけで、補足となるエントリーを書き起こしておこうかなと。 なお表題のとおり今回はXamarinではなくてWPFのお話です。 …

WPFのWebBrowserでJavaScriptのエラーを抑止する

WPF

JavaScriptでエラーが発生すると、標準だと以下のようなダイアログが表示されます。 FormsのWebBrowserだとプロパティを変更するだけですが、WPFだと少し分かり難いです。 本エントリーではWPFのWebBrowserでJavaScriptのエラーを抑止する方法を記載します。

WPFのWebBrowserでWindow Openイベントをインターセプトする

WPF

WebBrowserコントロールを利用している際に、JavaScriptでopenメソッドを呼ばれるなどで新しいWindowを開かれるとポップアップでIEが開かれてしまい、制御がプログラムから外れてしまいます。 本エントリーでは新しいWindowが開かれる前にイベントをインター…

WPFのWebBrowserでHttpOnlyなクッキーを取得する

WPF

表題の通りです。 WebBrowserクラスのDocumentクラスから取得すると、通常のクッキーは取得できても、HttpOnly属性のついているクッキーは取得できません。 本エントリーではその方法を説明します。

WPFのWebBrowserでUserAgentを偽装する

WPF

WPFで作ったアプリケーション内にWebBrowserを埋め込んで、そのWebBrowserで任意のUserAgentを利用する方法を記載します。 解決すれば何てことは無かったのですが、案外ハマったのでメモを残しておきます。