私は次の DataTemplate を持っています:
<DataTemplate>
<Grid>
<1-- Content -->
</Grid>
</DataTempalte>
グリッドのコンテンツの上に装飾を配置したいと考えています。
どうやってやるの?
使用したい装飾は別のグリッドです。
純粋な XAML だけでこれを行うことはできますか?
ありがとう
私は次のコードで非常に良い経験をしました:
http://www.codeproject.com/Articles/54472/Defining-WPF-Adorners-in-XAML
コード ベースにいくつかのクラスを追加すると、次のように Xaml で Adorners を定義できます。
<local:AdornedControl x:Name="adornedControl" HorizontalAlignment="Center" VerticalAlignment="Center"
HorizontalAdornerPlacement="Outside" VerticalAdornerPlacement="Outside" IsAdornerVisible="True"
IsMouseOverShowEnabled="False">
<local:AdornedControl.AdornerContent>
<Canvas x:Name="adornerCanvas" HorizontalAlignment="Center" VerticalAlignment="Center">
<Thumb Canvas.Top="-5" Canvas.Left="-5" />
<Thumb Canvas.Bottom="-5" Canvas.Left="-5" />
<Thumb Canvas.Top="-5" Canvas.Right="-5" />
<Thumb Canvas.Bottom="-5" Canvas.Right="-5" />
</Canvas>
</local:AdornedControl.AdornerContent>
いいえ、 MSDNでわかるように、WPF Adorners をコードに実装する必要があります。
コードで Andorner を作成できない場合は、必要な XAML を DataTemplate に直接レイヤー化することを検討してください。さらに、AdornersはレンダリングにDrawingContextを使用するため、グリッドの使用も実用的ではないことがわかります。