i++

プログラム系のメモ書きなど

WPF/XAML : プロジェクト作成時のデフォルトの MainWindow.xaml などを変更する

AssemblyInfo.cs のデフォルト編集の内容とほぼ同じですが、以下のパスにあるプロジェクトのデフォルトとして使われるファイルを編集することで MainWindow.xaml やその他を変更できます。 ; VS2013 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Co…

WPF/XAML : TabControl 中の TabItem の高さを自動で揃える

TabControl に Grid.IsSharedSizeScope="True" を設定し、各 TabItem 内のコンテンツを同じグループの Grid に置くことで高さを共有します。 サンプル 2つめの TabItem の中身の高さを 1つめより低く設定していますが、Grid.IsSharedSizeScope を使うことで …

コマンドプロンプト : ネットワークインターフェースの設定(IPアドレス)を変更する

固定 IP を設定するには netsh interface ip set address "インターフェース名" static 192.168.0.1 255.255.255.0 DHCP にするには netsh interface ip set address "インターフェース名" static 192.168.0.1 255.255.255.0 インターフェース名を見るには n…

Unreal Engine : スタティックメッシュエディタのカメラ速度を変更する

右マウスボタンを押しながらマウスホイールを上に回転させると速度アップ、下に回転させると速度ダウンします。現在のカメラ速度の表示はなさそうです。 また、一度スタティックメッシュエディタを閉じてしまうと設定は解除されてしまいます。

C# : 文字列がアルファベットと数字(+ α)のみで構成されているかを調べる

正規表現クラス(System.Text.RegularExpressions.Regex)を使い、許可する文字以外のマッチがあるかどうかを判定し、それを反転します。 using System.Text.RegularExpressions; // 数字とアルファベットのみ isAlphaNumericOnly = !Regex.IsMatch(name, @"…

WPF/XAML : DataGrid にボタンの列を追加する

DataGrid のセル中に自分で定義した UI 要素を入れられる DataGridTemplateColumn という汎用的な列を定義し、その DataGridTemplateColumn.CellTemplate -> DataTemplate の中に Button を指定します。 サンプル DataGrid に DataGridTemplateColumn を置き…

Visual Studio : ビルドイベントで同じソリューション内の他プロジェクトの成果物をコピーする

プロジェクトのプロパティから「ビルド イベント」のパネルを開き、コマンドラインで xcopy を使います。 ビルド先のフォルダ名を取得するためのマクロや xcopy については以下のリンク先が参考になります。 ビルドのコマンドとプロパティのマクロ xcopy フ…

Android : Warning:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (22.2.1) and test app (22.2.0) differ.

Espresso が 22.2.0 を必要としていてそれが conflict を招いているので gradle で ResolutionStrategy を設定して解消します。 Warning:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (22.2.1) and test…

TypeScript : Visual Studio のプロジェクトでコンパイルオプションを指定する

Visual Studio で TypeScript のコンパイルオプションを指定するには、プロジェクトのプロパティの TypeScript パネルから設定しますが、そこにないオプションについては(プロジェクト名).csproj を直に編集します。 例えば Decorator を使用するには、--emi…

WPF/XAML : Behavior の PastingHandler で MessageBox を表示する

ポイント PastingHandler をつけるには DataObject.AddPastingHandler を使用する 外すときは RemovePastingHandler PastingHandler として設定した関数で直接 MessageBox.Show を呼ぶと例外が発生するので Dispatcher.InvokeAsync を使う Aync じゃない方の…

WPF/XAML : TextBox の入力内容を検証して不正入力の場合にエラーを表示する

ポイント TextBox.Text に Binding.ValidationRules で Validation のルールを設定する TextBox.ErrorTemplate で不正入力時の表示をカスタマイズできる デフォルトではテキストボックスに赤枠表示 AdornedElementPlaceholder の中に元のテキストボックスが…

WPF/XAML : DataGrid の各セルを VerticalAlignment=Center にする(あるいは余白を設定する)

デフォルトでは上方向に寄ってしまいます。とくに CheckBox(DataGridCheckBoxColumn)の列で目立ちます。 これを縦方向中央揃えにするには VerticalAlignment=Center にするには、以下のようにスタイルを設定します。 サンプルコード <DataGrid x:Name="VerticalCenteredCell_DataGrid"> <DataGrid.Resources> <Style TargetType="DataGridCell"> <Setter Property="Template"> <Setter.Value> </setter.value></setter></datagrid.resources></datagrid>

C# : AssemblyInfo.cs のデフォルト値を設定する

デフォルト値は Visual Studio のインストール先のフォルダに、プロジェクトのテンプレートとして設定されているので、それを直接書き換える事で新規プロジェクト作成時のデフォルト値を設定できます。 AssemblyCompany や AssemblyCopyright には PC のメー…

WPF/XAML : Grid の各セルに余白を設定する

Grid.Resources に Style を設定して、Grid 内の子要素に Margin か Padding を設定することで余白を取ります。 注意点は、Grid に配置する全ての要素に余白を設定しようと TargetType の Type を FrameworkElement や UIElement にしても上手くいかず、どの…

WPF/XAML : Grid のセルに枠(罫線) / 背景色をつける

以下の理由から、コードから Grid の Row と Column でループして Rectanble を配置するのが一番楽という結論に。 Grid に用意されている ShowGridLines プロパティはレイアウト上の問題をデバッグするために提供されている機能であるため、スタイルを設定で…

Android : NavigationView の menu にセパレータを表示する

group でまとめて、group に固有の id を設定すると前後に横線が入ります。 <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/drawer_navigation_home" android:checked="true" android:icon="@drawable/ic_home_grey600_36dp" android:title="@string/home"/> </item></menu>

WPF/XAML : Window 起動時のフォーカスを設定する / コードからフォーカスを設定する

Window 起動時のフォーカス設定 XAML の Window タグの属性に FocusManager.FocusedElement="{Binding ElementName=(UI要素に x:Name で付けた名前)}" をつけます。

C/C++ : printf / std::cout のコンソール出力のテキストに色をつける(Windows)

Windows はここで紹介されているようなエスケープコードが効かないので、Windows.h の SetConsoleTextAttribute 関数を使います。 もろもろのメモ。 FOREGROUND_INTENSITY を付けると色が明るめになる 下の例でいうところの Gray が普段のコンソールのテキス…

Android : NavigationView の headerLayout の RippleEffect を消す

クリックイベントを設定していない、ディスプレイ用のヘッダーでもクリック時に RippleEffect が表示されます。 これを消すには、headerLayout に設定したレイアウトの親要素に android:id を設定し、headerLayout に setOnClickListener を付ければ OK。 逆…

Android : SearchView に独自の CursorAdapter を設定する

幅広く独自のレイアウトで検索候補を表示できるようになるので使い勝手が良さそうです。 // bindView をオーバーライドしているので SimpleCursorAdapter のコンストラクタの String[] from は使っていない気がするのだが、null にすると動かない mSearchVie…

Android : SQLite で Cursor の Column を別名で返す

SQLiteOpenHelper (SQLiteDatabase) を使っているデータベースを持っている そのデータベースのテーブルを使って SearchView に検索候補を返したい しかしテーブルのカラムには SearchManager.SUGGEST_COLUMN_TEXT_1 がない! という場合などに使います。 具…

Android : Toolbar のスタイル(背景とテキスト)を変える

背景色は Toolbar の android:background で、テキストの色とシステムアイコン(オーバーフローアイコンやハンバーガーボタン)の色は app:theme で変更します。Application 本体の Theme から変更する場合に使います。 テキストのスタイルを細かく変える場…

Android : SearchView に独自の検索候補を表示する

Adding Custom Suggestions | Android Developers からのメモ書き。 表示する検索候補をコントロールするために ContentProvider を実装する以外、検索履歴を表示する場合とほぼ変わりません。 ContentProvier を実装する query (と onCreate)だけ実装すれ…

Android : Guava を使うための build.gradle の設定

Guava は Google製の Java 用ライブラリ。 Android プロジェクトで使用するには build.gradle (Module: app の方)の dependencies に 'com.google.guava:guava:18.0' を追加します(バージョンはこの記事を書いた時点のもの)。 dependencies { compile file…

Android : SearchView に検索履歴を表示する

Adding Recent Query Suggestions | Android Developers からのメモ書き。 ドキュメントに沿って書けば問題なく動くはずなので、表示されない場合は各所に設定する Authority の文字列や タグに設定する android:name の値を確認しましょう SearchRecentSugg…

Android : SearchView での検索時に追加の情報(Context Data)を渡す

SearchDialog 使用時には、検索を実行する Activity の onSearchRequested() をオーバーライドしてその中で Bundle にデータを入れる方法が記載されていますが、SearchView (SearchWidget) の場合の実装方法は記載がありません。 いろいろ調べた結果、Search…

Android : NavitagionView (DrawerLayout の Drawer) をフルサイズ(画面の高さに合わせて)表示する

アプリ領域全体だけで良い = システムのステータスバー(アンテナとか電池残量とか表示している部分)にオーバーラップしなくても良い、という場合は Toolbar を使うだけで OK です(逆に Toolbar を使う場合に Drawer を被せないようにする場合、Layout に…

Android : DrawerLayout と Toolbar の組み合わせで、Toolbar が画面全体に広がってしまう

DrawerLayout は1つめの子ビューをコンテンツ、2つめの子ビューをドロワーとして扱い、それぞれ自動的に match_parent に設定するため、View の構成を間違えているとそのような事が起きる模様です。 DrawerLayout を使う場合、View の構成は基本的に以下のよ…

Android : SearchView を入れたダイアログで、キーボードを閉じた時にダイアログ自体を閉じる

SearchView#setOnQueryTextFocusChangeListener で hasFocus が false の時に Dialog#dismiss することで実現します。 通常は、1回目の BackKey でキーボードが閉じられるとともに EditText 部分がフォーカスを失い、2回目の BackKey でダイアログが閉じる、…

Android : SearchView を含むダイアログ起動時にキーボードを自動で表示する

Dialog#setOnShowListener にキーボードを表示するコードを入れます。 // AlertDialog.Builder の Create で Dialog を作成 // Dialog にセットした View に SearchView があり、 // mSeachView として変数に保存しているものとする dialog.setOnShowListene…