仅在 XAML 中的数据模板上放置装饰器

本文关键字:XAML 数据 仅在 | 更新日期: 2023-09-27 18:33:26

>我有以下数据模板:

<DataTemplate>
<Grid>
<1-- Content -->
</Grid>
</DataTempalte>

我想在网格的内容上放置一个装饰器。

我该怎么做?

我想使用的装饰器是另一个网格。

我们可以仅在纯 XAML 中执行此操作吗?

谢谢

仅在 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>

不,WPF Adorners 必须在代码中实现,正如您在 MSDN 上看到的那样。

如果无法在代码中创建 Andorner,则可以考虑直接在数据模板中对所需的 XAML 进行分层。此外,由于Adorners使用DrawingContext进行渲染,您会发现使用网格也不切实际。