クリック範囲、タッチ範囲、ダブルクリックの猶予時間について 補足

クリック範囲、タッチ範囲、ダブルクリックの猶予時間について - kitunechan’s blogの補足ですWPFでの話です。Windows Formsでは意味が無いかもしれないMouseDoubleClickイベントを使うとマウスの範囲で判定されてしまいます。 指でのダブルタッチをうまく認…

クリック範囲、タッチ範囲、ダブルクリックの猶予時間について

ダブルクリック範囲 System.Windows.Forms.SystemInformation.DoubleClickSize https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/SystemInformation.csタッチ範囲は System.Windows.Input.StylusLogic をリフ…

WindowsForms DataGridView コントロール上でのタッチ操作について

Windows FormsのDataGridViewはタッチ操作(フリック、スワイプっていうらしい)でのスクロールに不具合があります。 もうWindows Formsのバグは修正してくれないので回避コードでいくしかないようです。DataGridView コントロール上でのタッチ操作について …

[WPF] Imageがぼやける問題

Image を使って画像を表示させていると等倍で表示しているはずなのにぼやけてしまいました。 SnapsToDevicePixels や UseLayoutRounding では直らなかったので途方に暮れていたらいいものがありました。blogs.msdn.microsoft.com 専用のコントロールを作って…

Visual Studio Installer 編集の自動化

Visual Studio Installer - kitunechan’s blog の続き毎回Orcaを使って編集するのはめんどくさいし、”よく忘れます”← ここ重要 コマンドラインやバッチファイル的なものはないかと探したらありました。vbsを使う方法が一番簡単そうです。MSIファイルのWindow…

コードだけでlog4netを使う

ログ出力のライブラリとしてlog4netやらNLogが人気があります。 紹介しているサイトを見るとすぐXMLの設定を書かせたがるのですが、後から変更するのか?と。ということで、log4netをコードから設定する方法です。 ログをファイル出力します。 // 大体一つを…

C# .Net アプリケーションで複数のアイコンを登録する方法

C# .Net のアプリケーションでショートカットアイコン用に複数のアイコンファイルをEXEに入れたかったのですが、 Visual Studio 2013だけではできませんでした。参考イメージ ショートカット アイコンの変更 - Google 検索では本題です。 長いので目次付けま…

Visual Studio Installer Projects

これのお話 Microsoft Visual Studio 2015 Installer Projects - Visual Studio Marketplaceほぼ覚書UpgradeCode を一致させておくとインストールプログラム一覧にダブらずにインストールできる。 ProductCode は必ず変更すること。ファイルのPermanentをTru…

WPFで画像処理中にメモリが開放されず・・・

覚書程度に記載ですWPFで Canvas(正確にはVisualクラス?) を RenderTargetBitmap を使って大量に画像出力していたらエラー「メモリが足りません」 System.OutOfMemoryException: プログラムの実行を続行するための十分なメモリがありませんでした。はー悲…

Visual Studio 再起動の拡張機能の紹介

インテリセンスのウインドウが表示されなくなるとか、 Xamlでデザインいじってる時にGUIからプロパティが操作効かなくなったり、 と割とよく不具合があるので再起動しまくりです。 [×] 押して毎回起動するのめんどくせーーーーーと思ってたらありました。Vis…

Visual Studio 許すまじ

Visual Studio 2013 にて Showで作成した小ウインドウを閉じた時に親ウインドウが見えなくなってしまうという不思議な現象に見舞われました・・・ どうも原因は親ウインドウよりもVisual Studioがしゃしゃり出てきて前面に表示されるため、 親ウインドウはア…

定義済みコマンドを使っていこう

既に定義がされているコマンドがいくつかあります。 System.Windows.Input 名前空間 http://msdn.microsoft.com/ja-jp/library/system.windows.input.applicationcommands.aspx Open や Save など一般的なアプリケーションで有用なコマンドを持つComponentCo…

自分でコントロールを描画する

ControlPaint ControlPaint クラス (System.Windows.Forms) 自分でコントロールを描画したい時に便利なクラスです 参考:コントロールを描画する: .NET Tips: C#, VB.NET Button周りのボーダーグラデーションも指定色から作成することができます。 ControlPa…

テキストボックスに数値型のデータバインドをした時の不正文字入力後のフォーカス変更

TextBoxのTextにデータバインディングをした時に、バインディング元が数値型だと入力エラーになりフォーカスが外せなくなります。FormのAutoValidateプロパティをAutoValidate.EnableAllowFocusChangeにするとフォーカスが外せるようになります。

ウインドウの位置を保存・復元する

プログラムを再度起動した時に前回のウインドウ位置やサイズを保存・復元する方法です。 保存する情報は ・ウインドウのサイズ(Width,Height) ・ウインドウの位置(Location) ・ウインドウの状態(最大化、最小化) になります。また、起動した時に画面か…

リフレクション

最近WPFを触っています。 が、ほしいフィールドやプロパティがプライベートだったりして歯がゆい思いをよくしてます。気に入らないのでリフレクションで持ってきてしまいましょう。 .NET FOLLOWER » C#: How to set or get value of a private or internal p…

Blend for Visual Studio のデザイン表示について

WPFのデザイン(Xaml)表示がされなくなってしまう事がありました。 調べた結果、Blend for Visual Studio 2013 で .NET Framework 4.5 より上のバージョンを使用するとデザイン表示ができないようです。.NET Framework 4.5.1 .NET Framework 4.5.2 .NET Frame…

Windows API Code Packのインストール

Windows7以降に追加された機能を使用するには追加ライブラリを入れると簡単です。 以前はMicrosoftのコードギャラリーから入手できましたが消滅してしまいました。 現在ではNuGetから入手・インストールします。NuGetの画面 Core Shell ShellExtensions Dire…

オブジェクトをファイルに保存する

C#

自分で作成したクラスをファイルに保存する方法です。 DataContractSerializerを使用してXML形式で保存します。DataContractSerializer は System.Runtime.Serialization を使います。 多分初期設定では参照設定がないので追加して下さいね。 早速ですが、読…

[Windows Form] データバインドのやり方

テキストボックスの内容をいちいち変数に入れる処理を書くのはめんどくさいですね。 データバインドを使いましょう。Visual Studioのデザイナーで設定すると簡単にできます。 ※ スクリーンショットではアドイン画面がいくつか含まれています適当にフォームを…

ComboBoxの見た目と中身を別にする

コンボボックスの見た目と欲しいデータが別なんてことはよくあることですね。 簡単な物だったら匿名クラスを使ってちょいちょいです。 this.comboBox1.ValueMember = "value"; this.comboBox1.DisplayMember = "display"; this.comboBox1.DataSource = new[]…

ユーザーコントロールのスナップを自作する

ユーザーコントロールを作成してテキストボックスなんか置いたりすると、スナップ(ピンクの線)が消えてしまって配置するのがめんどくさくなります。 そこで、ユーザーコントロールにもスナップを追加します。とりあえずUserControlを継承したクラスを作成…

自作プロパティを(DataBindings)に追加する方法

Visual Studioで自作プロパティをデザイナー内の(DataBindings)に追加する方法System.ComponentModel.Bindable(true)をプロパティに付けましょう [System.ComponentModel.Bindable(true)] public int プロパティ{ get;set; } デザイナーから直接いじれるのは…

キーが押されているか調べる

Control.MouseButtons とか Control.ModifierKeysを使うだけ2つのキー同時押しはビット演算を使いましょう。 if( ( Control.MouseButtons & MouseButtons.Right ) == MouseButtons.Right ) { if( ( Control.ModifierKeys & ( Keys.Control | Keys.Shift ) )…

はてなブログのソースコード記述

C#

はてな記法で、csは小文字じゃないとダメなのね・・・ >|cs| // C# /// <summary> /// MainWindow の ViewModel です。 /// </summary> class MainWindowViewModel { /// <summary> /// Hoge を取得または設定します。 /// </summary> public String Hoge { get; set; } } ||< ↑ここのスペースを消…