WPFのボタンをフラットデザインに変更する

WPFのボタンのスタイルをデフォルトのスタイルから変更して境界線のないフラットデザインへ変更します。 デフォルトのボタンコントロールを表示すると 見た目がダサい(特にwindows7で) Win7とWin10で見た目が著しく異なる マウスオーバーしたときに青くな…

C#でZipファイルを解凍・圧縮する

C#でZipファイルを扱う方法を紹介したいと思います。この機能は、結構最近追加されたため.NET4.5以上で利用可能です。 簡単なファイル解凍・圧縮 Zipの解凍 フォルダの圧縮 その他のZip操作 Zip内のファイルを列挙する 1つだけファイルを取り出す 既存のZip…

VisualStudio 2017で.NET Framework4.7.1を利用可能にする

Visual Studio 2017に.NET4.7.1を追加する方法です。いつも、MSのWebサイトへ飛んで開発者キットをダウンロード → インストーラを起動し導入していましたが、今回は2017から新しく追加されているVS用のインストーラを使って追加する方法で導入したいと思いま…

WPFでクリック時に波紋を出すエフェクト(Ripple Effect)を実装する

Androidのマテリアルデザインに、ボタンを押すと波紋が広がったようなアニメーションをする、Ripple Effectというものがあります。 WPFでも同じようなことができないかカスタムコントロールを作成してみました。 動いているところ 実際に表示を行うと以下の…

内部でStaticな変数に依存しない

アンチパターンのひとつで、処理がStaticなメンバーへ依存してはいけないというものがあります。 大したことはないのですが。例えば以下のようにstaticな、ある種のグローバル変数があったとします。 public class GlobalValiables { public static bool Int…

Windows10を開発環境として使うための初期設定集

2021-06-15 OSをクリーンインストールしてスタートメニューを開いたらジャンクアプリだらけだったりして、まるで国産PCのプリインストールされたジャンクアプリ並みに望んでいないアプリが大量に入っているようです。Pro版ですら色々はいっているのですが開…

WCFの例外処理(クライアントへのエラー通知方法)

C#

2020-07-09 WCFでサーバー上で発生した例外は、クライアントへそのままthrowすることはできません。デフォルトではサーバーのスタックフレームの最上位より上に例外が送出されるとクライアントではRemotingExceptionが別途発生し、発生元の情報は通知されま…

C#7.0の新機能を使ってコード量を削減する

C#

2020-06-20 C#も既に7.0までリリースされ、以前より言語機能が拡張されています。そこで、新しい機能を使って昔ながらのコードを短く簡潔に記述することができるようになりました。 定型的なコードの繰り返しや、コードがごちゃごちゃしている場合に、少しで…

QTTabBarで新しいタブをPCで開く

QTTabBarの新しいタブを「+」プラスボタンで開いたときに、Win10でPC(旧マイコンピュータ)を開くように設定する方法です。確認したバージョンは1038(2015-12-8)です。 設定画面から、イベント > タブバーの "+" ボタンをクリックの項目のリストから「ユ…

C#でストラテジーパターンを用いてメソッドの複雑性を下げる

現実は紹介する例より圧倒的に複雑かと思いますが、以下のような状況でC#で利用できるデザインパターンの一つである、ストラテジーパターンを使ったリファクタリングの方法を紹介したいと思います。 あるメソッドに長大な処理が書かれている メソッド内であ…

C#でストラテジーパターンを実装する

GoF(The Gang Of Four)の23デザインパターンのうちのひとつ、Strategy パターンをC#で実装する方法を紹介したいと思います。 増補改訂版 Java言語で学ぶデザインパターン入門作者: 結城浩出版社/メーカー: SBクリエイティブ発売日: 2014/03/12メディア: Ki…

C#で特定のビットを変更する

C#

C#で整数型の特定のビットを立てたり落としたりする方法です。制御系の処理だと結構やるのと思いますが、C#でこういった操作をする事は珍しいので紹介したいと思います。 特定のビット「だけ」を変更するのは、一般的な方法論があるのでそちらを先に紹介した…