WPF 超入門 〜「WindowsForms 開発者のための WPF 早わかりQ&A」

WPF ですが、Windows Forms から移行した人は、私も含め要領掴めない人が多いようです。特に VB ユーザーはかなり苦戦してるんじゃないでしょうか?原因は、Windows Forms のプログラミングスタイルを引きずってるせいだと思います。
(#2010/01/17 追記 : 最近になって、あまりに Forms を無視した設計にし過ぎたせいだと思えるようになってきた・・・)
とはいえ、いったん頭をリセットしてといっても、長年身体に染み込んだスタイルはそうそう変えられるものじゃありません。また Forms で簡単にできたことが、WPF では容易にできなくなった機能も一部確かにかなりあります。そこで Forms 開発者のために Q&A 形式で少し纏めてみました。以下、参考にしてください。
なお回答は、詳しい解説を省き簡潔なものにしております。詳しくは、回答を基に検索して調べてみてください。


目次

  • 全般
    • Q046. 文字列に改行を設けるには?
    • Q060. WPFGoogle Map API を使うには?
    • Q069. 文字列として中括弧"{}"を扱うには?
    • Q089. WPF でスペルチェックをするには?
    • Q090. WPF でタスクトレイアイコンを表示するには?
    • Q103. WPF で未処理例外に対応するには?
    • Q115. ソリューション全体でアイコンを統一管理したい
    • Q120. App.xamlで定義したリソースを動的に変更したい
    • Q121. App.xamlで定義したリソースを動的に変更したい(バインディング編)
    • Q122. App.xamlで定義したリソースを動的に変更したい(バインディング編・その弐)
  • MVVM
    • Q066. ViewModel のコマンド内でマウスカーソルを変更するには?
    • Q077. コードビハインドを使わずに親から子に画面遷移するには?
  • Window
    • Q001. Window.DialogResult プロパティって Form.DialogResult と違うのですか?
    • Q002. Window を Normal で起動してから最大化しましたが、Width と Height の値が Normal の時と変わっていません!これって一体・・・
    • Q047. ショートカットキーでイベントもしくはコマンドを実行するにはどうすればいいのですか?
    • Q048. Window の最小化・最大化ボタンを無効にするには?
    • Q067. 現在アクティブな Window のインスタンスを取得するには?
    • Q068. View の Window ハンドルを取得するには?
    • Q098. 最大化ボタンを有効にしながら、ユーザーによるサイズ変更を不可にするには?
  • コンテナ
    • Q003. WPF には Panel はないようですが、代わりに何を使えばいいのでしょう?
    • Q004. 標準のコンテナが Grid になってますが、これって何?
    • Q005. Grid や StackPanel でスクロールバーを表示させたいのですが。
    • Q006. Canvas に配置したコントロールの Anchor を右下で設定したいんですが・・・
    • Q007. 依存関係プロパティの Grid.Row を動的に設定したいんですが・・・
  • コントロール全般
    • Q008. コントロールに Anchor プロパティがないよっ!!><
    • Q009. Control.BackColor プロパティはどこ行った?!
    • Q010. コントロールの DesignMode プロパティはどこ行きましたか?
    • Q011. フォントを縦書きにするにはどうすればいいのですか?
    • Q012. 背景のイメージはどこで指定するの?
    • Q013. Border の BorderBrush を Red で設定したのですが、Border が表示されません。(;_;)
    • Q040. Application.xaml に定義したリソースを動的に参照したい場合、どうすればいいのですか?
    • Q072. WPF にタイマーコントロールはないの?
    • Q092. Binding.RelativeSource の使い方がよくわからない
    • Q125. コントロールの Visiblity プロパティに bool 値をバインドしたい
  • IME
    • Q014. コントロールの ImeMode プロパティはどこいった?
    • Q015. IME を無効にしたいんですが、判りません!><
    • Q016. ComboBox で InputMethod.IsInputMethodEnabled="False" としても、IME が無効になりません。
  • コントロール
    • Button
      • Q017. 丸い Button を作るには?
      • Q018. Button.DialogResult プロパティがなくなってるしー!!
      • Q019. CheckBox の CheckedChanged イベントが見当たらないです。
      • Q020. CheckBox から Appearance プロパティがなくなってんだけどー!><
      • Q021. CheckBox を読み取り専用にする方法はありますか?
      • Q022. ToggleButton のチェック時に、Background を変えても表示に反映されません。Background のチェック時に Background を変える方法はありますか。
      • Q023. RadioButton から Appearance プロパティがなくなってます!また ToggleButton ではグルーピングできません!! ><
    • TextBox
      • Q024. TextBox に PasswordChar プロパティが見当たらないんだけど・・・(´・ω・`)
      • Q025. TextBox のText が上寄せになってますが、縦中央に配置したいんです。
      • Q026. TextBox を数値入力のみにしたいんです。
      • Q027. TextBox に MultiLine プロパティがないのですが、複数行にするにはどうすりゃいいの?
      • Q028. TextBox.TextChanged イベントって IME の変換候補を選択しただけでも発生しますが、これって仕様でしょうか?
    • ListBox
      • Q100. リストボックスの選択行の背景色を変更するには?
      • Q101. ListBoxItem で子要素の編集時に強調表示するには?
      • Q102. ListBox で一行おきに背景色を変えるには?
      • Q105. ListBox 等で、コレクションを操作せずソートするには
      • Q118. ListBox の項目にボタンを表示し、ビューモデルのコマンドとバインドさせたい
    • ComboBox
      • Q029. ComboBox に Datasource は指定できないのですか?
      • Q030. ComboBox の DropDownStyle はどこで設定するんですか?
      • Q031. ComboBox の編集時に背景色を変えたいのですが方法が判りません。
      • Q038. ComboBox.IsReadOnly プロパティ を True にしても編集できてしまうのですが・・・
      • Q043. ComboBox.IsEditable プロパティを True にすると、IsTabStop プロパティを False にしてもタブストップが有効のままなんですが。(-ω-
      • Q099. コンボボックスの項目に整数リテラル値を設定するには?
    • DatePicker
      • Q032. WPF に DateTimePicker が見当たらないのですが・・・・(´・ω・`)
      • Q033. ToolKit の DatePicker では時刻を表示できないんですが・・・・(´・ω・`)
    • DataGrid
      • Q035. DataGrid の列ヘッダーの背景色を変えたいのですが、方法が判りません。
      • Q036. DataGrid のセルデータの位置を上寄せから中央に変えたいのですが・・・
      • Q037. DataGrid のセルデータの水平位置を中央に変えたいのですが・・・
      • Q039. DataGrid で選択行をドラッグドロップで移動するにはどうすればいいのですか?
      • Q041. DataGrid のセルの値を中央や右寄せで表示したいのですが、どうすればいいですか?
      • Q042. DataGrid のセルの値を書式設定したいのですが・・・
      • Q049. DataGrid 行の高さをセル内容に応じて自動的に変えるには?
      • Q086. DataGrid/XamDataGrid でスクロールバーをダブルクリックすると、MouseDoubleClickイベントが発生しちゃう!><
      • Q095. DataGrid でソートを制御にするには?
      • Q096. DataGrid でセルの値を変えると背景色が変わるようにするには?
    • WebBrwser
    • その他
      • Q104. WPFツールチップをバルーン形式にするには?
      • Q063. WPF でショートカットメニューを表示するには?
      • Q064. 左クリックで ContextMenu を表示するには?
      • Q119. ビューモデルの状況に応じて動的にメニュー構成を変更したい
  • GrapeCity
    • Q034. ActiveReports は WPF で使えますか?
    • Q117. ActiveReports WPF 用 Viewer をカスタマイズしたい
    • Q065. 簡単に検証インジケーターを表示するには?
    • Q078. TextBoxの入力をカナや英数だけに制限したいが簡単な方法はないか
  • Infragistics
    • 全般
      • Q045. Infragistics 社の XamDateTimeEditor や XamNumericEditor 等、 XamMaskedEditor を継承したクラスでフォーカスがあるか判定するには?
      • Q071. WPF で使えるチェックボックス付きコンボボックスってありますか?
    • XamComboEditor
    • XamDockManager
      • Q126. XamDockManager のレイアウトを保存・読み込み・初期化したい
    • XamDataGrid
      • Q050. XamDataGrid でサンプルデータを簡単に表示するには?
      • Q051. XamDataGrid で一行おきに行を強調表示するには?
      • Q052. XamDataGrid で一行おきの強調表示のブラシを変更するには?
      • Q053. XamDataGrid でマウスオーバー時のブラシを無効にするには?
      • Q054. XamDataGrid で掛線を指定するには?
      • Q055. XamDataGrid で「エリアごとのグループ化」機能を無効にするには?
      • Q056. XamDataGrid で列を固定表示するには?
      • Q057. XamDataGrid でユーザーが列の表示状態を任意に設定できるようにするには?
      • Q058. XamDataGrid でセルに収まらない値をツールチップで表示するには?
      • Q061. XamDataGrid で別の列の値をツールチップで表示するには??
      • Q062. XamDataGrid でセルにボタンを表示するには?
      • Q070. XamDataGrid で列を非表示にするには?
      • Q073. XamDataGrid でセルの表示を複数行にするには
      • Q074. XamDataGrid でセル編集と同時にレコードを確定するには?
      • Q075. XamDataGrid でセルのIMEを設定するには?
      • Q076. XamDataGrid で集計結果のスタイルを設定するには?
      • Q079. XamDataGrid のフィルタリングを有効にするには?
      • Q080. XamDataGrid のフィルタリング条件を制限するには?
      • Q081. XamDataGrid でフィルタリングの初期条件を指定するには?
      • Q082. XamDataGrid でフィルタリングの初期値を設定するには?
      • Q083. XamDataGrid でフィルタリングを初期化するには?
      • Q084. XamDataGrid で並び替えを初期化するには?
      • Q085. XamDataGrid で特定データの前景色を変更するには?
      • Q087. XamDataGrid にテーマを設定するには?
      • Q088. テーマを適用した XamDataGrid のセルに境界線を引くには?
      • Q091. XamDataGrid で特定データの前景色を変更後、マウスホバー行や選択セルに設定した前景色を反映するには?
      • Q093. XamDataGrid で 「フィールドの選択」 のグループ名を変更するには?
      • Q094. XamDataGrid で 「フィールドの選択」 のタイトルを変更するには?
      • Q097. XamDataGrid でフィルタリングされたレコードのコレクションを取得するには?
      • Q106. XamDataGrid の表示内容をそのまま印刷したい
      • Q107. XamDataGrid の内容を印刷時にプレビューを表示したい
      • Q108. XamDataGrid の印刷時に余白や印刷方向を設定したい
      • Q109. XamDataGrid のレポートフッターに印刷日時やページ数を表示したい
      • Q110. XamDataGrid でユーザーが設定したレイアウトを保存したい
        • Q110. XamDataGrid でユーザーが設定したレイアウトを保存したい(其の弐)
        • Q110. XamDataGrid でユーザーが設定したレイアウトを保存したい(其の参)
      • Q111. XamDataGrid でネストされたレコードのフィールドを設定する
      • Q112. XamDataGrid でネストされたレコードのヘッダをデザインする
      • Q123. XamDataGrid で表示されている内容をそのまま EXCEL に出力したい
      • Q124. XamDataGrid で絞り込み表示されてるレコードのみ抽出する
        • Q124. XamDataGrid で絞り込み表示されてるレコードのみ抽出する(其の弐)