仅在 XAML 中的数据模板上放置装饰器
本文关键字:XAML 数据 仅在 | 更新日期: 2023-09-27 18:33:26
>我有以下数据模板:
<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>
不,WPF Adorners 必须在代码中实现,正如您在 MSDN 上看到的那样。
如果无法在代码中创建 Andorner,则可以考虑直接在数据模板中对所需的 XAML 进行分层。此外,由于Adorners使用DrawingContext进行渲染,您会发现使用网格也不切实际。