SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

WPF

XAML Advent Calendar 2017を作りました

今年も技術系アドベントカレンダーの時期が近づいてきましたね。 Qiitaでも色々なカレンダーが作られ始めていたので、今年もXAMLアドベントカレンダーを作っておきました。 去年は12月になってからカレンダー作ったせいもあってか、あまり人は集まりませんで…

WPFでImageSharpを使ってみる

今回はImageSharpで編集した画像をWPFのUIで表示してみます。 ImageSharpでは、Imageというクラスで画像データを扱っています。(←WPFにも同名のImageコントロールというクラスがありますが別物です。) そのままではWPFのUIに表示できないので、WPFで扱えるよ…

ImageSharp v1.0.0beta1がリリースされたので使ってみた

.Netの様々な環境で動作する、ImageSharpという画像処理ライブラリのv1.0.0beta1がリリースされました github.com 以前.NET blogの↓の記事などでも紹介されてたライブラリです。 https://blogs.msdn.microsoft.com/dotnet/2017/01/19/net-core-image-process…

FontAwesome.WPFを使ってみた

Web系の開発でアイコン表示などによく使われているFontAwesomeというものがあります。 サイト上でよく使われるような様々なアイコンを、Webフォントとして利用できるようにしたものです。 Font Awesome, the iconic font and CSS toolkit これをWPFやUWPなど…

Visual Studio 2017のXAMLエディタ

VS2017をインストールしたので、ざっと色々な機能を試してみました。 IDEの起動も速くなってるし、便利な機能も色々と追加されてて、なかなかイイ感じです。 XAMLエディタの新機能は以下のページにまとめられています。 Visual Studio 2017 リリース ノート

WPFでホットキーの登録

WPFでホットキーの登録を行うサンプルを書いてみました。 Win32のRegisterHotKey/UnregisterHotKeyというAPIを呼び出すことで、ホットキーの登録/登録解除ができます。 このAPIでホットキーを登録しておくと、アプリがアクティブでないときでも有効なグロー…

WPF用にNotifyIconクラスをラップしてみた

C#で常駐アプリなどを作り、タスクトレイにアイコンを出す場合には、Win Formsで用意されているNotifyIconというクラスを使います。 以前、このクラスを使って常駐アプリを作る方法を↓に書きました。 この方法だと、使うたびにWinFormsのデザイナを利用して…

WPF/UWP向けに、グリッドレイアウト補助ライブラリを作ってみました~GridExtra~

この記事はXAMLアドベントカレンダー 2016 18日目の記事です。 WPF/UWP向けに、グリッドレイアウトに役立つクラス類を提供するライブラリを作りました。 今のところ、この二つのクラスだけですが、今後少しずつ色々なパネルを追加していきたいと思っています…

.Net 4.6.2以降でのWPFのPer-Monitor DPI対応

この記事はXAMLアドベントカレンダー 2016 14日目の記事です。 WPFでは、ボタンをはじめとする各種UI要素はベクターベースでの描画を行っています。 そのため、WinFormsやMFCなどのGDI系のUIフレームワークと違い、High-DPIな環境でもボケずにキレイな描画が…

.Net 4.6.2でのWPFのソフトキーボード対応の改善

WPF

この記事はXAMLアドベントカレンダー 2016 4日目の記事です。 今まで、WPFのTextBoxはタップしても、ソフトキーボードが表示されませんでした。 ですが、.Net4.6.2でソフトキーボードのサポートが強化され、テキストボックスタップ時に自動でソフトキーボー…

Visual StudioのXAMLエディタの地味に便利な機能

この記事はXAMLアドベントカレンダー 2016 3日目の記事です。 この記事では、Visual StudioのXAMLエディタの機能で、そこそこ便利なんだけど、あまり知られて無さそうなものをいくつか紹介したいと思います。 VS2015に搭載されている機能を紹介しているので…

Debug時とRelease時のXAML表示内容を切り替える方法

この記事はXAMLアドベントカレンダー 2016 2日目の記事です。 ちょっと予定を変更して、本日はXAMLの小ネタ。 XAML上で、以下のような表示切替をしてみます。 Debug/Releaseモードに応じて表示内容を切り替える VSのデザイナ上での実行orアプリとしての実行…

XAMLアドベントカレンダー 作りました

この記事はXAMLアドベントカレンダーの1日目の記事です。 XAMLに関するアドベントカレンダーが無さそうなので作りました。 数日前にチェックしたときにはUWPカレンダーがあった気がするのですが、書こうと思いチェックしてみたら無くなってしまってました・…

ResponsiveGrid 0.3.2をリリースしました

先日リリースしたResponsiveGrid 0.3.1で、以下のような不具合がありました。 パネル内の要素数が0個の時、例外を吐いて終了する ということで、修正して0.3.2としてリリースしました。 この間バグ対応して0.3.1を作った時に、MeasureOverrideの中の処理を作…

ResponsiveGrid 0.3.1をリリースしました

以前、WPF/UWP向けにResponsiveGridというライブラリを作りました。 このライブラリですが、GitHubのIssuesで不具合報告もらったので修正してリリースしました。 今回のアップデートはバグフィックスのみです。

OpenCvSharp3を使ってみた

以前、C#からOpenCVを扱うためのラッパーライブラリのOpenCvSharpというライブラリを使ってみました↓ http://sourcechord.hatenablog.com/entry/2014/09/22/010344 OpenCV3.0に対応した、このライブラリの新バージョンOpenCvSharp3を使ってみたのでφ(..)メモ…

WPF/UWP用にBootstrap風Gridレイアウトを行うライブラリを作ってみた~ResponsiveGrid~

超定番cssフレームワークBootstrapのグリッドシステムのようなレイアウトをXAML環境で行うためのライブラリを作ってみました。 WPF/UWPともに、Nugetから以下のパッケージをインストールすることで使えます。 NuGet Gallery | ResponsiveGrid 0.3.1 (WPF/UWP…

WPFでの入力値検証・まとめ

今まで何回かに分けて書いてきたWPFのバリデーション関係ネタについて、自分でもわりと見返すので、この入力値検証関連の記事をまとめておきます。 あと、各種バリデーション方法のサンプルコード一式を、以下のリポジトリに上げておきました。 色々書いたブ…

WPFでの入力値検証・その9 ~エラー表示のローカライズ~

ずいぶん久しぶりだけど、WPFの入力値検証ネタ。 以前↓みたいなのをやりましたが、 このDataAnnotationsを使ったバリデーションを行う際に、エラーメッセージのローカライズをしてみました。

WPF用にLightBox的なポップアップ表示をするライブラリを作ってみた

こんな風に、LightBox的なダイアログ表示を行うライブラリを作ってみました。

MahApps.Metroを使ってみた

お手軽にWPFアプリにモダンなデザインを適用できる、MahApps.Metroというライブラリを使ってみました。 MahApps.Metro Documentation この手のモダンなデザインを適用するライブラリでは、 Modern UI for WPF(MUI)というのもあります。 まだちょろっと使って…

WPFでLightBox風のポップアップ表示をするサンプル

WPFでLightBox風のポップアップ表示を行うサンプルを作ってみました。 コードはこちら↓

Nugetでパッケージを作ってみる

Nugetパッケージを作ってみたので、作り方を少しメモしときます。 実際にやってみると、思ってたよりだいぶ簡単に作れそうです。 Nugetのパッケージを作るには、以下の二通りの方法があります。 Nuget.exeなどのコマンドラインツールから作成 Nuget Package …

WPFでシンプルな独自ナビゲーション処理のサンプルを書いてみた

WPFに標準で用意されてるナビゲーション系のクラス類が何かと扱いにくいので、もうちょいシンプルな独自のページ遷移を行うサンプルを書いてみました。

MVVMな設計のTips~サービスを作ってVMの依存性を排除~

WPF

最近、色々とMVVMな設計のサンプル類を見てると、○○Serviceみたいなクラスを作って、VMが他のモジュールへの依存を極力持たないように設計している例をよく目にするようになった気がします。 ここでは、MVVMでの定番の躓きポイント「VMからのダイアログ表示…

WPF向けにRelativePanelなどを実装したライブラリ~UniversalWPF~

↓のブログを読んでいて知りました。 UniversalWPF dotMorten/UniversalWPF · GitHub こんなコントロールを作ってくれてる方がいたんですね!! WPF用にRelativePanelやSplitViewを作ってくれてます。スバラシイ!!

AvalonEditを使ってみた

AvalonEditとは http://avalonedit.net/ .net環境で使える超高機能なテキストエディタのライブラリです。 シンタックスハイライトや、複数行の折り畳み機能、コード補間などの機能をもったエディタをお手軽に作ることができます。 C#でVisualStudio的なIDEを…

WPFにもx:Bind欲しいよね

UWPで追加されたx:Bind。とても便利ですね。 で、この機能WPFにも欲しい!!と思ったりするわけです。VisualStudioへの要望などを投票する、↓のサイトを見てみると、WPFにx:Bind追加してほしいって要望にたくさんの投票が集まってます。http://visualstudio.us…

VS2015のXAMLエディタの新機能~XAMLのRegion機能~

あんま知られてなさそうだけど、地味に便利そうな新機能。 XAMLでも、C#のRegionディレクティブのような感じで、コードにブロックを定義して折りたためるようになりました。以前channel9のWPF4.6新機能紹介の動画を見て気になってた機能ですが、さっそく使っ…

WPF用にシンプルなコレクションエディタを作ってみた

ちょっと必要に迫られて、コレクションエディタ的なものを作ってみました。extended wpf toolkitのCollectionEditorほどのカッチリしたエディタじゃなくて、「ちょろっとコレクションの編集したいだけ」、って位の時に使えるかと思います。 コレクションを任…