- 430 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:33:21 ]
- >>429
それ、マークアップ拡張だから、使わないで普通にBinding要素を子要素として 書く事もできるよ。その方がInteliSenseの支援も受けられるし。 RelativeSourceが絡んでくる場合とか、マークアップ拡張使うと 中カッコが二重になって>>429が言う通りうんざりする。入力支援 もないし。でも、Binding要素とそのRelativeSourceプロパティに RelativeSource要素を普通のxmlの文法で書けば嫌な点は解消される。 例えば、前に書いた、Canvasに置いてあるViewport3Dの幅をCanvasに合わせる コードを書いておくね(なぜかHorizontalAlignment=Stretchだとうまくいかなかった)。 <Viewport3D.Width> <Binding Path="ActualWidth"> <Binding.RelativeSource> <RelativeSource Mode="FindAncestor" AncestorType="{x:Type Canvas}" AncestorLevel="1"/> </Binding.RelativeSource> </Binding> </Viewport3D.Width> 等価なのは <Viewport3D Width={Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Canvas}, AncestorLevel=1}}/> だけど、これだと>>429が言うように支援がなくて書くのが大変だし、 実行時まで間違いが分からないし、実行時の例外の内容は分け分からないしで 嫌になるのも分かる。
|

|