Top > Programming > .NetFramework > WPF > Custon and UserControl > EnableDirectContentControl
Last-modified: Sat, 27 Apr 2013 17:36:20 JST
Counter:2328 Today:3 Yesterday:1 Online:15
このエントリーをはてなブックマークに追加

ダイレクトコンテントをサポートするCustomControlの実装

About

GridやCanvasのように、ドラッグアンドドロップでその子要素にコントロールを配置することができるカスタムコントロール、を作るにはどうすれば良いのかをここでは解説します。ふつうは、ContentTemplateなどで頻繁にあつかうContentPresenterを利用します。しかしながらほんの些細なことながら、1点のみ注意しておく必要があるのです。

HowTo

ふつう、新規にカスタムコントロールを追加しようとすると、追加されるクラスはContentクラスを継承しています。この状態のまま、対象のクラスのXAMLを編集し、ContentPresenterを定義してもエラーが発生します。これはContentがContentPresentorを許容しないクラスであるために発生しています。詳細については割愛しますが、この問題は継承するクラスをContentControlに変更することで解決できます。

問題の解決は酷く簡単ですが、あまり情報が公開されていない、公式の情報しか存在しない、という状況下では、このことに気が付かないことがあるのです(私のように)。