PG日誌

受託系 PG が C# の事を書いています

2017年に WPF でデスクトップアプリを新規作成する際に考慮すること

2017年4月現在、新規に Windows 上で動作するデスクトップアプリケーションを作成する際に、考慮しなくてはいけない事と、一番最初にやっておいた方がいい設定などを、業務アプリ屋目線で考察をしてみました。 デスクトップアプリを取り巻く環境 マイクロソ…

WPF の Fluent.Ribbon でリボンプログラミング 第6回:コンボボックス、スピナーを表示する

今回は作成済みウインドウに対し、コンボボックスの配置、スピナーの配置を行います。 コンボボックスの表示と定義 このコントロールは標準であるコンボボックスとほぼ同じです。プロパティの挙動もほぼ同じ複数選択肢の中から一つを選ぶためのコントロール…

WPF の Fluent.Ribbon でリボンプログラミング 第5回:クイックアクセスバー、ツールバーメニューを表示する

今回は作成済みウインドウに対し、クイックアクセスバーへのアイコン表示、ツールバーメニューへコントロールの配置を行います。

WPF の Fluent.Ribbon でリボンプログラミング 第4回:ツールチップ、コンテキストタブを表示する

前回までに作成したリボンウインドウへ、ツールチップ、コンテキストタブを追加します。

WPF の Fluent.Ribbon でリボンプログラミング 第3回:タブ、グループ、ボタンの配置

作成済みのリボンウィンドウへタブ、グループ、ボタンを配置していきます。 Fluent名前空間以下に配置されている以下コントロールを使用します。 リボンタブ:RibbonTabItem グループ:RibbonGroupBox ボタン 普通のボタン:Button ドロップダウンボタン:Dr…

WPF の Fluent.Ribbon でリボンプログラミング 第2回:導入方法とウインドウ表示

Fluent.Ribbon 導入方法は、NuGet からダウンロードで行うことができます。 まず、VisualStudio 上のメニューから、[ツール] > [NuGet パッケージマネージャー] > [パッケージマネージャーコンソール] を選択し、コンソールを表示します。 コンソールが表示…

WPF の Fluent.Ribbon でリボンプログラミング 第1回:構成要素の紹介

リボンUIですがマイクロソフトのリボンUIの方針というものが存在するのかは不明ですが、デザインのバリエーションは複数の実装があります。 Office2007スタイル Office2007製品 Windows7のペイントツール Office2010スタイル Office2013以降のスタイル Offic…

Fluent.Ribbon でリボンプログラミング連載一覧

標準のリボンがなんか微妙だったので、.NET(主にC#ですが) + WPF で利用できる、Fluent.Ribbon というリボンライブラリを調査してみました。発展途上のライブラリのためドキュメントの整備状況が少し微妙なのと、日本語での情報があまりなかったため、調査し…

【非推奨】WPF と C# でリボン UI を使用する

MS Office 製品でお世話になってるリボン UI (Microsoft.Windows.Controls.Ribbon)を 最近の環境(VisaulStudio2017)で使用する方法です。 注意: タイトルの通り、標準ライブラリのリボン UI の利用は非推奨です。標準ライブラリ化されているにも関わらず、…

C#でオブジェクトの内容をXMLへ書き出す、読み込む

c#

オブジェクトの内容を、XmlSerializerを使ってXMLへ読み(デシリアライズ)書き(シリアライズ)する方法のまとめです。単純な読み書き程度はクラスさえ用意すれば数行で読み書きができます。また、標準機能を使用するので特別な外部ライブラリは必要ありま…

Googleアカウントにニックネームを設定する

たぶんこれをやるとアカウント全体で偽名感が出て万が一BANの可能性があるので、完全に自己責任です。Googleアカウントを偽名にしてニックネーム風に見せる方法です。 Googleにニックネームを登録する 画面右上の自分の本名が表示されてるアイコンをクリック…

C#でDictionaryから複数の要素を一括で削除する

c#

C#でDictionaryから同時に複数の条件を削除したい時にDictionaryに、そういった機能が無いため拡張メソッドを作成しました。

NEC製のAterm WG1800HPが壊れた(簡単なレビュー付き

NEC製の Aterm WG1800HG が最近とっても不思議な動きをしていましたが、昨日壊れていることを確信した話です。使ってる機種は↓です どんな機種か? NECが発売しているミドルアッパークラスの無線ルーターです。 無線最大速度:1300Mbsp 2.4GHz速度:450Mbps …

Windows Server2016のIISでGitbucketを動かす

GitbucketをIIS上にセットアップした時のメモです。公式のセットアップ方法 [「Installation on IIS and Helicontech Zoo」](https://github.com/gitbucket/gitbucket/wiki/Installation-on-IIS-and-Helicontech-Zoo)でJettyを使用したセットアップが何故か…

C#で同じ値の異なるEnumへの変換を行う

c#

C# である Enum から別の Enum の同じ値のメンバーへ変換を行う方法を説明します。 問題の確認 例えば、以下の2つの Enum が定義してあったときに、双方の “A” というメンバーは同じ値となっています。そこで public enum EnumSample_1 { A = 0, B, C, } pub…

WPFでログインウインドウを表示する

c#

WPF でメイン画面を表示する前に、自作のダイアログ(ログイン画面など)を表示するときの方法です。 App.xaml WPF のアプリケーションには Main メソッドが存在しません。そのためアプリで一番最初に呼ばれる AppMain.xaml の Application タグへ Startup …

C#でstringを一括でEmptyに初期化する(Refrection使用)

c#

例えば C# で string のプロパティが 100個あるクラスがあった場合、コンストラクタで1つ1つメンバーへ手で初期化を記述するは、大変手間な上に、初期化が漏れているなどのケースがあります。普通テストしたらそういう事にならないのですが、まれに NullRefe…

はてなブログの Evergreen の記事の幅を広げる

はてなブログの公式テーマの Evergreen は記事幅が広めの1カラムシンプルなデザインですが、もっと記事の幅を広げたい(もしくは小さくしたい)というときに使用するCSSを紹介したいと思います。 CSS ブログ全体の幅が 1000px、記事の幅が 850px としたい場…

はてなブログのソースコードの色を変更する

はてなブログでコードを記述しシンタックスハイライトをかける際に使用するカラーテーマをカスタマイズしたので公開したいと思います。使用しているテーマははてなブログ公式テーマの Evergreen です *1。 この配色では、主に C# でコードが表示が綺麗にされ…

クラリネット用リガチャーKODAMA2のレビュー

石森楽器が発売しているクラリネット用のリガチャー『KODAMA II』を2016年の6月に購入し使用し始めてから10ヵ月程度たったので使い心地のレビューを書きたいと思います。 吹奏環境 当方吹奏環境ですが、以下の通りです。 項目 内容 リード バンドレン ルピッ…

C#のSystem.Threading.Timerクラスの精度を確認する

C#のTimerクラスの定周期処理で、タイマーのインターバールを1msに設定した時の実際の実行間隔を確認した話です。

真・C# と WPF でインベーダー風ゲームを作る

3日前に『C# と WPF でインベーダー風ゲームを作る』を言って、雰囲気だけ似ているオリジナルのイカのシューティングの記事を書きましたが、「インベーダー」を名乗ってあの出来栄えはさすがに我田引水が過ぎるかなと思い反省したので、本物の「インベーダー…

C# と WPF でインベーダー風ゲームを作る

VisualStudio2017が出たということで記念するわけではないですが、C#とWPFのみでインベーダー風ゲームを作ってみたいと思います。 すいません、嘘つきました。インベーダーを意識した気がするオリジナルなシューティングゲームです。リスペクトしたというこ…

Exlipse 4.4 LunaでのSVN 1.9のリポジトリに接続する

Eclipse4.4 Luna PleiadesでSVN1.9へ接続できるようにSubversiveのSVNKit(SVN Connecter)を更新する方法です。

Windows10でフォントが汚いのでYuGothicを削除する (不完全版)

Windows10のシステムフォントを『Meiryo UIも大っきらい!!』を使っても変更できないコンテキストメニューの内容をレジストリをいじってMSゴシックに変更する方法です。

オーボエ奏者 大下裕子さんのHP

いつもと全然経路が違いますが、Oboe奏者の大下裕子さんが自分のHPを作ったとのことで、紹介します。 ページがものすごいオシャレ! oshitahirokooboe.wixsite.com

Cocos2d-xでHPゲージを実装する

Cocos2d-x 3.1xで、Spriteを使ってHPゲージを実装したときのメモです。

C# の List<T> の使い方

c#

C#で動的に要素を追加したり、削除したりしたいときに使う動的な配列「リスト」の使い方の簡単なメモです。

2016年にリアルで聞いた意識の高すぎる言葉大賞

2016年にリアルで耳にした意識高い系の言葉ランキングです。

Disposeパターンを実装する

c#

Disposeパターンについて調べたので結果をまとめてみようと思います。 Disposeパターン コード例 基底クラスの実装 派生クラスの実装 利用側のコード 注意点 参考資料 Disposeパターン Disposeパターンですが、c#で基底クラスが アンマネージリソースを使用…

C#とC++間でchar*もしくはLPSZをやり取りする

C#からC++のDLLを呼び出すためにDllImportしたときにchar*が引数にある場合のやり取りの仕方です。 C++側はシグネチャを持つコードがあった場合 // C++側宣言 uint32_t __stdcall Function(char* szMessage); // もしくは uint32_t __stdcall Function(LPSTR…

Qtuoの激安ワイヤレスマウスのレビュー

このマウス、去年の4月頃に買って年末まで7か月使ってたのですが結局捨ててしまいました。そこで供養的な意味でレビューを書きたいと思います。 ちなみに商品はこれです。 Qtuo 2.4G ワイヤレスマウス 無線マウス 5DPIモード 2400DPI 高精度 ボタンを調整可…

VisualStudio2013,2015に.NET4.6.2を導入する

だいぶ前に、VisualStudio2013へ.NET4.6.1の導入の仕方を書きましたが、.NET4.6.2がリリースされたので導入の手順を書きたいと思います。 【旧記事】.NET4.6.1の導入の仕方 概要 サポートライフサイクルについて 現在の状態 導入方法 MSのサイトから開発者キ…

C# で JSON をシリアライズ、デシリアライズする

c#

C# で JSON 形式のデータをシリアライズ・デシリアライズする方法のメモです。.NET Frameworkの標準ライブラリにあるDataContractJsonSerializer を使ってファイルやネットワークから読みとった JSON な文字列を C# のオブジェクトへ変換したり、オブジェク…

VisualStudio2015が使うIEバージョンの変更

VisualStudio2015ってデフォルトだとIE9になっています。このままだとネットワークがIEの古いバージョンを制限していたりするとVisualStudio上からログインダイアログすら表示できないのでブラウザがIE11を使用するように変更したいと思います。 Note: 基本…

Visual Studuo Codeのキーショートカット

Windows版のVisual Studio Codeのキーショートカットの個人的なメモです。 操作 ショートカット 右端で折り返す Alt + z MardDownのプレビュー表示 Ctrl + Shift + v Note: Trello で「説明」の欄の Markdown に表は使えない。 はてなブログのMarkdownの見出…

C#とWFでk-measn法のビジュアル化してみた

クラスタリングで定番のk-means, k-平均法をc#とWPFをつかって視覚化してみました。 今回は、以下2つのサイトに刺激を受けて作成しています。 play.google.com tech.nitoyon.com このアルゴリズムですがはだいたい以下のような手順で進みます。 データを座標…

ポケモンGOのBANされたときのメール

ポケモンGOをBANされたときはこんな内容の連絡が来るそうです。 差出人 pokemon-go-support@nianticlabs.com 件名 Pokémon GO Team 本文 Trainer,Your account has been terminated. Use of any other third-party software or app, including but not limit…

ASUS Zenfone3でメニューボタンを使用する

Zenfone3ですが、物理センサーキーなので履歴ボタンを長押しするとメニューが出るはずが初期設定のままだとスクリーンショットが撮影されてしまします。が、この動作設定から変更できます。変更方法は以下の通りメニューが出ないと操作できないアプリも多い…

ZenFone 3(ZE520KL)白、開封 & レビュー

ASUS ZenFone3 ZE520KL(白)を手に入れたので開封と簡単なレビューをしたいと思います。黒のほうが1か月早く発売されていたので、レビューは黒の機種の画像が多いた(せっかくなので)白の画像をアップします。ご注意: 当方ガジェットレビューなんてしたことな…

Cocos2d-xのwin32プロジェクトをgen-libsで高速化する

タイトルの通りですが、win32プロジェクトで、あらかじめgen-libsコマンドで作成したライブラリをリンクして、コンパイルの時間を高速化します。iOSだとスタティックライブラリを使用して高速化するあたりの話と同じです。ちなみに、元ネタは以下のフォーラ…

C# の is 演算子と typeof の型判定の挙動の違い

c#

コード書けばすぐわかる事なんですが is 演算子の挙動の話です。is 演算子は複数の型で true になる可能性があります。 親子関係がある型で厳密に型を判定したい場合、GetType() と typeof を使います。 // こんなクラスがあったとして、、 public class Bas…

C# の event と delegate の違い

c#

マウスをクリックした場合などに発生する"イベント"の話ではなく、c#の予約語の"event構文"の話です。本当にざっくりとした先に結論を書くと、"event構文"は"delegate専用のプロパティ"の一種です。delegate型をクラス外に公開する場合だけ特別に、"プロパテ…

ObservableCollectionにAddRangeを追加する

c#

タイトルの通りなんですが、ObservableCollectionやIListにはAddRangeが無いんですよね。WPFでObservableCollectionの入れ替えを毎回foreachでやってたら憤死しそうにりました。けっこう前から結構不便に感じていたのでライブラリ作りました。こんな感じです…

c#のイベントのnullチェックがめんどくさい

c#

イベントってWPFとかだとたくさん呼ぶことがありますが、いちいちイベントにインスタンスが入っているかどうかを確認するとコードがnullチェックだらけになってしまいます。 普通こんな感じです。 // イベントの宣言 public event Action<object, EventArgs> HogeEvent; // イベ</object,>…

クラリネットの運指表

クランポンの楽器を買ったときについていたクラリネットの運指表が横に長すぎて取り回しが悪かったのでA4サイズに加工してみました。最低音~最高音まで網羅していて、それぞれの変え指も豊富なので、現時点で多分どのサイトに掲載されているのよりも詳しい…

cocos2d-xのUSING_NS_CCについて

cocos2d-xのUSING_NS_CCはCCPlatformMacros.hに以下のように定義されています。 #ifdef __cplusplus #define NS_CC_BEGIN namespace cocos2d { #define NS_CC_END } #define USING_NS_CC using namespace cocos2d #define NS_CC ::cocos2d #else #define NS_…

C# の const と static readonly の使い分け

c#

c#でプログラム書いてるとコードを書いているときは、constとreadonlyの区別ってあんまりありませんよね。ついつい定数は全部、constと書いてしまいます。 public static class HogeDefine { public const uint MaxLength = 10; public static uint DataSize…

現在のコードページで表示できない文字を含んでいます。

VisualStudio2013以降で以下警告メッセージが出た時の対処法です。 コードページの警告 hogehoge.cpp : warning C4819: ファイルは、現在のコード ページ (xxx) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存…

Windows10のフォントが汚すぎる...

これは、、、、汚すぎない?フォントが。強制的にWin10へ移行させて移行した先が地獄とかWinのユーザー調教厳しすぎます。何YuGothicって。。。 細すぎてかすれてるしぼやけてんじゃん。ちゃんと描画できないのに何で採用した? 目が悪くなったのかと思って…