2018-01-01から1年間の記事一覧

ExceptionのHResultについて

C#

C#でファイル操作などのWindowsに関わる操作を行うと内部的にはWindows APIが呼ばれます。 WindowsAPIはC#ではないので、エラーになったときにはC++的な形でエラーコードを返します。 それをC#でラッピングしてあるので、C#でExceptionとしてエラーを取得す…

無理やりワンライナー

C#

こんな感じのときってあると思います。 var result = ""; if( 条件1 ){ result = "1つ目"; }else if( 条件2 ){ result = "2つ目"; } この初期化めんどくさくない? var result = ""; 三項演算子 ただ、三項演算子で書くと「(◕‿‿◕)ワケガワカラナイヨ・・…

[Rx] 変更通知の合成はObservable.Merge<object>です。

WPFでBindingする時にLivetを使っていたのですが、ReactivePropertyが面白そうだったのではじめました。 Livetだと自分の好きなタイミングで変更通知イベントを出せていたのですが、Rxだとそのタイミングもロジックとして書く必要があります。要は、Aプロパ…

[WPF] タッチ長押しで右クリックをやめる(□を表示させない)

少ないですがWindowsタブレット用のアプリでドラッグやタッチしっぱなしの操作がメインのときにタッチ長押しの右クリック機能が邪魔なときがあります。対象のXamlの添付プロパティにこれを使いするだけ Stylus.IsPressAndHoldEnabled = false こんな感じです…

[WPF] ComboBoxをItemsSourceとSelectedItemで扱う時の注意

2019/06/13 再度試してみたら問題なく初期値が設定されました SelectedItem で初期値を設定する場合には SelectedItem を先に設定してから ItemsSource を変更しないと初期値が設定されない場合があるようです。味気ないので、雰囲気コード(実際には動かな…

[WPF] ワンランク上のPOPUP コントロール

POPUP コントロール についてです。 よく 「ボタンを押す」→「ポップアップ出す」というデザインを使います。ポップアップの動作的にはこんな感じになると思います。 ボタンを押す。 ポップアップを表示させる。 ポップアップ以外の場所をクリックするとポッ…

Visual Studio デザインモードの判定

Visual Studioのデザイナーすごい便利ですよね! ただ、デザイン時には実行してほしくないコードが実行されてしまうときもあります。そんなときはコードに実行中かどうかの判定を記述しましょう。 自分は以下のコードを使用しています。 if( System.Componen…

[WPF] 自作ライブラリを使う時に、Xamlのxmlnsで指定する名前空間について

自分でライブラリを作った時にXmlnsDefinitionを記述するとXamlで指定する名前空間に好きな文字を付けられます。 AssemblyInfo.cs にでも記述しておくとわかりやすいかな? // [assembly: XmlnsDefinition("Xamlでの名前空間", "ライブラリのネームスペース"…

[WinForm] NativeWindowでWinProcの処理を切り分け

WinFormの場合、WinProcからメッセージを受け取って処理を行うという処理をまとめたい場合にNativeWindowと便利になります。 といっても下記URLからの情報なのでこれ以上は無いですマウスのホイールをコロコロした時にマウスオーバー(エンター?)している…

[WPF] WebBrowserコントロール

WebBrowserコントロールを使用すると、アプリケーション内でブラウザを使用することができます。 が、これはMicrosoftのコントロールなのでInternet Explorerです。 しかも、互換性の問題とやらで標準ではIE7になります。 最新のIEを使用するためにはレジス…

WPFのデザインについて

WPFではView(デザイン)の変更がわりと簡単に行えるが、少し特殊なことをしたいときにはどうにもならない場合がある。sygh.hatenadiary.jpControlTemplateを使った場合、指定したデザインに固定されてしまうため、Windowsのバージョンによって微妙に違うコ…