5

私は次の DataTemplate を持っています:

<DataTemplate>

<Grid>
<1-- Content -->
</Grid>

</DataTempalte>

グリッドのコンテンツの上に装飾を配置したいと考えています。

どうやってやるの?

使用したい装飾は別のグリッドです。

純粋な XAML だけでこれを行うことはできますか?

ありがとう

4

2 に答える 2

6

私は次のコードで非常に良い経験をしました:

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>
于 2012-05-07T11:34:30.557 に答える
1

いいえ、 MSDNでわかるように、WPF Adorners をコードに実装する必要があります。

コードで Andorner を作成できない場合は、必要な XAML を DataTemplate に直接レイヤー化することを検討してください。さらに、AdornersはレンダリングにDrawingContextを使用するため、グリッドの使用も実用的ではないことがわかります。

于 2012-05-05T15:04:19.320 に答える