我有以下 DataTemplate :
<DataTemplate>
<Grid>
<1-- Content -->
</Grid>
</DataTempalte>
我想在网格的内容之上放置一个装饰器。
我怎样才能做到这一点?
我要使用的装饰器是另一个网格。
我们可以仅在纯 XAML 中执行此操作吗?
谢谢
我使用以下代码获得了非常好的经验:
http://www.codeproject.com/Articles/54472/Defining-WPF-Adorners-in-XAML
将一些类添加到您的代码库后,您可以像这样在 Xaml 中定义 Adorner:
<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,则可以考虑直接在 DataTemplate 中将所需的 XAML 分层。此外,由于 Adorner 使用DrawingContext进行渲染,您会发现使用 Grid 也不实用。