WPF/XAML
方針・ポイント EventSetter を使って DataGridRow に右マウスボタンイベント(MouseRightButtonUp)を設定する ContextMenu を DataGrid.Resources 内で作る そのイベント内で、Resources の ContextMenu を取得、設定する ContextMenu の方もコード上で作…
ポイントは以下の3点です。 DataGrid の ItemsSource に CollectionViewSource.View を使う CollectionViewSource.Filter にフィルタリング用の関数を登録する TextBox の入力に変更がある度に CollectionViewSource.View.Refresh() を呼ぶ サンプルコード …
WPF界隈では hint ではなく watermark とも呼ぶらしいですね。Android の方では watermark という呼び方を聞いたことはないのですが。 参考にしたサイト(下記記載)には AttachedProperty を使った方法や Trigger を使った方法も掲載されており、「TextBox …
AssemblyInfo.cs のデフォルト編集の内容とほぼ同じですが、以下のパスにあるプロジェクトのデフォルトとして使われるファイルを編集することで MainWindow.xaml やその他を変更できます。 ; VS2013 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Co…
TabControl に Grid.IsSharedSizeScope="True" を設定し、各 TabItem 内のコンテンツを同じグループの Grid に置くことで高さを共有します。 サンプル 2つめの TabItem の中身の高さを 1つめより低く設定していますが、Grid.IsSharedSizeScope を使うことで …
DataGrid のセル中に自分で定義した UI 要素を入れられる DataGridTemplateColumn という汎用的な列を定義し、その DataGridTemplateColumn.CellTemplate -> DataTemplate の中に Button を指定します。 サンプル DataGrid に DataGridTemplateColumn を置き…
ポイント PastingHandler をつけるには DataObject.AddPastingHandler を使用する 外すときは RemovePastingHandler PastingHandler として設定した関数で直接 MessageBox.Show を呼ぶと例外が発生するので Dispatcher.InvokeAsync を使う Aync じゃない方の…
ポイント TextBox.Text に Binding.ValidationRules で Validation のルールを設定する TextBox.ErrorTemplate で不正入力時の表示をカスタマイズできる デフォルトではテキストボックスに赤枠表示 AdornedElementPlaceholder の中に元のテキストボックスが…
デフォルトでは上方向に寄ってしまいます。とくに 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>
デフォルト値は Visual Studio のインストール先のフォルダに、プロジェクトのテンプレートとして設定されているので、それを直接書き換える事で新規プロジェクト作成時のデフォルト値を設定できます。 AssemblyCompany や AssemblyCopyright には PC のメー…
Grid.Resources に Style を設定して、Grid 内の子要素に Margin か Padding を設定することで余白を取ります。 注意点は、Grid に配置する全ての要素に余白を設定しようと TargetType の Type を FrameworkElement や UIElement にしても上手くいかず、どの…
以下の理由から、コードから Grid の Row と Column でループして Rectanble を配置するのが一番楽という結論に。 Grid に用意されている ShowGridLines プロパティはレイアウト上の問題をデバッグするために提供されている機能であるため、スタイルを設定で…
Window 起動時のフォーカス設定 XAML の Window タグの属性に FocusManager.FocusedElement="{Binding ElementName=(UI要素に x:Name で付けた名前)}" をつけます。