FAQ
A. エスケープシーケンスを使います。文字列の先頭に "{}" を設定すると、後続の中括弧を文字列として認識できます。 関連記事: {} エスケープ シーケンス/マークアップ拡張機能 以下の例では SummaryDefinition.StringFormat プロパティに書式文字列を渡…
A. 状況によっては Window のハンドルを取得したい場合があります。そのような場合は WindowInteropHelper クラスの Handle プロパティを使えばハンドルを取得できます。 VB.NET Dim helper = New System.Windows.Interop.WindowInteropHelper(Me) MessageB…
A. 以下のようにApplication.Current.Windows コレクションを走査して、アクティブな Window を検索すればいいです。 VB.NET Application.Current.Windows.OfType(Of Window).SingleOrDefault(Function(w) w.IsActive) C# Application.Current.Windows.OfTy…
A. Mouse.OverrideCursor プロパティを使ってアプリケーションのカーソルを設定できます。 MVVM パターンだと ViewModel から View の操作をしないため、コマンド実行時にどうやって Window のマウスカーソル変更すんだろうとしばらく考えてましたが、いろ…
GrapeCity 社の InputMan for WPF に含まれている GcValidationIndicator を使うと簡単です。検証を行う要素名を ElementName プロパティに設定するだけです。 <im:GcValidationIndicator ElementName="GcNumber1"/> 以下、某所に上げたサンプルです。二つの数値コントロールの値を乗算した結果が 12 を超えると</im:gcvalidationindicator>…
A. Blend SDK の ChangePropertyAction ビヘイビアーを使用します。以下サンプルです。先日のエントリの XAML を改造し、TextBox を Button に変更しています。Button を左クリックすると ContextMenu を表示します。
A. ContextMenu を使用します。 以下、Livet を使った簡単なサンプルです。TextBox に ContextMenu を設け、右クリックでポップアップを表示、選択したメニューを TextBox に表示します。
A. スタイルで CellValuePresenter のテンプレートを設定し、表示したい Field の FieldSettings.CellValuePresenterStyle に指定します。
A. CellValuePresenter のスタイルを設定します。以下のサンプルのように、XAML 内で自身のレコードのセルを参照することができます。でも XAML 内で添字も使えたんですね。初めて知った時はかなり驚きました。
A. WebBrowser コントロールを使います。以下は NavigateToString メソッドを使ったサンプルです。Google Maps API の使い方については以下の記事を参考にさせて頂きましたが、たいへん判りやすいサイトで助かりました。 関連記事 :Google Maps入門(Google…
A. DataSource プロパティに DataView をバインドします。現在アクティブなデータは ActiveDataItem プロパティで取得・設定できます。以下、ViewModel を使った簡単なサンプルです。Model がないのでいわゆる MVVM パターンではありませんが、バインディン…
A. いささか凝った方法ですが、MultiDataTrigger と IMultiValueConverter を使って設定します。
A. FieldLayoutSettings.HeaderPrefixAreaDisplayMode プロパティを FieldChooserButton に設定します。 <igDP:XamDataGrid Grid.Row="1" BindToSampleData="True" > <igDP:XamDataGrid.FieldLayoutSettings> <igDP:FieldLayoutSettings HeaderPrefixAreaDisplayMode="FieldChooserButton" /> </igDP:XamDataGrid.FieldLayoutSettings> <…</igdp:xamdatagrid>
A. Field クラスを使って設定します。 データソースの列とバインドさせるには Field.Name プロパティに列名を指定します。Name プロパティに列名指定するのってやや気持ち悪い仕様になっててベンダーさんも認識してるようですが、WPF 1.0 くらいからの仕様…
A. XamDataGrid の目玉機能の一つで、これはかなり強力な機能なんですが、シーンによっては無効にしたいケースもあります。その場合、XamDataGrid.GroupByAreaLocation プロパティを None に設定します。 <igDP:XamDataGrid BindToSampleData="True" GroupByAreaLocation="None" /> 標準では「エリアごとのグループ化」機能が有効に</igdp:xamdatagrid>…
A. Style で CellValuePresenter.BorderThickness プロパティと CellValuePresenter.BorderBrush プロパティを設定します。以下のサンプルの場合、上下左右すべての BorderThickness を同じにすると、左右で重なるところが重複して描画されてしまい見苦しく…
A. Style で DataRecordCellArea クラスの BackgroundHover プロパティと BorderHoverBrush プロパティをヌルに設定します。 <Style TargetType="{x:Type igDP:DataRecordCellArea}"> <Setter Property="BackgroundHover" Value="{x:Null}"/> <Setter Property="BorderHoverBrush" Value="{x:Null}"/> </Style> ・・・・・…
A. Style 定義で DataRecordCellArea.BackgroundAlternate プロパティにブラシを設定します。以下のサンプルでは、一行おきのブラシをピンクに変更してます。 <Style TargetType="{x:Type igDP:DataRecordCellArea}"> <Setter Property="BackgroundAlternate" Value="Pink" /> </Style> ・・・・・・ <igDP:XamDataGrid BindToSampleData="True" > </igdp:xamdatagrid>
A. FieldLayoutSettings.HighlightAlternateRecords を True に設定します。以下のサンプルでは強調表示を見やすくするため、テーマを Office2007Black に設定してます。 <igDP:XamDataGrid BindToSampleData="True" Theme="Office2k7Black" > <igDP:XamDataGrid.FieldLayoutSettings> <igDP:FieldLayoutSettings HighlightAlternateRecords="True" /> </igdp:fieldlayoutsettings></igdp:xamdatagrid.fieldlayoutsettings></igdp:xamdatagrid>
A. XamDataGrid.BindToSampleData を True にするだけで以下のようにサンプルデータを表示します。これなかなか気の利いた機能で関心しますね。XamDataGrid のデザイン編集中は BindToSampleData を True にしとくといいですね。 <igDP:XamDataGrid BindToSampleData="True" /> BindToSampleData を True</igdp:xamdatagrid>…
A. DataGrid.CellStyle ・DataGrid.RowStyle でグリッド行とセルの高さを Auto に設定します。 <DataGrid > <DataGrid.RowStyle> <Style TargetType="DataGridRow"> <Setter Property="Height" Value="Auto" /> </Style> </DataGrid.RowStyle> <DataGrid.CellStyle> <Style TargetType="DataGridCell"> </datagrid.cellstyle></datagrid>
A. SetWindowLong で Window スタイルを設定します。 (2011/07/25 追記)リサイズ不可で最大化だけ無効にしたいなら ResizeMode を CanMinimize に設定するといいです。 関連記事 :Windowの最小化、最大化ボタン 実は私も id:akiramei さんと同じく、ユー…
A. KeyBinding を使います。 例えば画面を閉じる処理を F12 キーと結び付けたい場合、以下のようにします。 まず Window のコードビハインド側に以下のコードがあるとします。(とりあえず VB ですが・・・) Partial Public Class Window1 ''' <summary>閉じるを実行</summary>…
A. 特殊文字「 」を使うか、 タグを使います。 <TextBox Text="僕と契約して魔法少女になってよ。 わけわかんないよ。 この宇宙のために死んでくれる気になったら、いつでも声をかけて。待ってるからね♪" > <TextBox.ToolTip> <TextBlock > 僕と契約して魔法少女になってよ。<LineBreak/> わけわかんないよ。<LineBreak/> この宇宙のために死んでくれる気になったら、いつでも声をかけて。待ってるからね♪ </TextBlock> </TextBox.ToolTip> </TextBox> #2014/11/07 改…
A. このコントロールは UIElement.IsFocused プロパティではフォーカスがあるか正常に取得できないようですが、XamMaskedEditor.IsFocusWithin プロパティを使うと、コントロールにフォーカスがあるか判定できるようです。 <Style TargetType="{x:Type igEditors:XamDateTimeEditor}"> <Style.Triggers> <Trigger Property="IsFocusWithin" Value="true"> </trigger></style.triggers>
A. Windows Forms なら、デザイナでフォームを開き、「表示」→「タブオーダー」で現在のタブインデックスが表示され、クリック順でタブインデックスを設定することができます。 関連記事 : Windows アプリケーションの利点 関連記事 : コントロールのTabI…
A. これは ComboBox の仕様バグとしか思えません。止むを得ないのでタブストップが無効になるようテンプレートを編集します。 ComboBox 子要素の編集用テキストボックス「PART_EditableTextBox」に、親要素の IsTabStop プロパティの値をバインドするように…
A. コンバータークラスを用意し、 Binding.Converter プロパティに設定します。 以下の例は、数値データを単純に #,##0 形式で表示するサンプルです。 Double や Decimal 型のデータをバインドすると少数点以下を 123,456.00 と表示してしまうことがあるの…
A. DataGridTextColumn.ElementStyle プロパティ でスタイルを設定します。 <DataGridTextColumn Header="登録日" Width="40" Binding="{Binding Path=regist_date}" > <DataGridTextColumn.ElementStyle> <Style TargetType="{x:Type TextBlock}" > <Setter Property="Margin" Value="2" /> </setter></datagridtextcolumn.elementstyle></datagridtextcolumn>
A. Application.FindResource メソッド を使用します。 WPF FAQ の目次に戻る