<TextBox
hpext:CueBanner.Content="Find Text"
hpext:CueBanner.Padding="2,6,0,0"
/>
ジェイソンのコードは、プログラムContentPresenter
を作成し、CueBanner.Content
にその内容を設定ContentPresenter
をAdorner
サブクラスに追加し、必要に応じて表示します。
コードでは、飾り付けされたコントロールの余白と余白からのContentPresenter
を推測しますが、代わりにhpext:CueBanner.Padding
を追加して、明示的に好きな値に設定することができました。
contentPresenter.Margin = CueBanner.GetPadding(adornedElement);
これまでのところとても良いです。
これは問題です:それは動作しますが、代わりにバインドしたいと思います。
var binding = new Binding("hpext:CueBanner.Padding") { Source = adornedElement };
BindingOperations.SetBinding(contentPresenter, ContentPresenter.MarginProperty, binding);
しかし、私はソースプロパティのパスのために何を使うのですか?"hpext:CueBanner.Padding"
は機能せず、動作しません。その名前空間はそこに存在しません。喜びは"CueBanner.Padding"
と"(CueBanner.Padding)"
です。 "MyProject.Extensions.CueBanner.Padding"
はどちらもうまく動作せず、私はなぜそれをすべきか分かりません。
PropertyPath
には役立つようなものは何も表示されませんが、読んだときには少し空白になり始めます。
XAMLでこれを行うだけでいいですか?
新しいバインディング{Path = new PropertyPath(CueBanner.PaddingProperty)、...} 'はどうですか? – Clemens
@クレメンスビンゴ!私はそれを受け入れることができるように答えとして投稿することができますか? –