2011-01-05 10 views
2

Grundsätzlich habe ich eine DataTemplate, die die Elemente in einem ItemsControl definiert und ich möchte eine Sprechblase oberhalb des Elements, wenn es geklickt wird. Bisher haben meine Versuche dazu geführt, dass mein Adorner in der DataTemplate auftaucht und von den Grenzen dieser DataTemplate abgeschnitten wird, anstatt darüber zu liegen. Ich habe eine raffinierte Adorner-Steuerung verwendet, die Sie hier finden: http://www.codeproject.com/KB/WPF/adornedcontrol.aspx.Kann ich einem DataTemplate-Objekt außerhalb der Datenvorlage einen Adorner hinzufügen?

Meine XAML sieht wie folgt aus:

<DataTemplate x:Key="TrackActivityDetailTemplate"> 
     <ac:AdornedControl HorizontalAlignment="Center" VerticalAlignment="Center" VerticalAdornerPlacement="Outside" > 
      <ac:AdornedControl.AdornerContent> 
       <TextBlock Foreground="Red" Text="HEY!!!!" /> 
      </ac:AdornedControl.AdornerContent> 
      <Rectangle Name="btn" Height="35" Width="2" Fill="{Binding Foreground, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}}" > 
      <i:Interaction.Triggers> 
       <i:EventTrigger EventName="MouseLeftButtonDown"> 
        <cmd:EventToCommand Command="{Binding Path=SelectActivityCommand}" PassEventArgsToCommand="True"/> 
       </i:EventTrigger> 
      </i:Interaction.Triggers> 
     </Rectangle> 
     </ac:AdornedControl> 
    </DataTemplate> 

Irgendwelche Gedanken? Ist das, was ich versuche, sogar mit Adornos möglich?

Antwort

1

Ja, es ist möglich. Das erste, was ich versuchen würde, ist ClipToBounds = false für das Element zu setzen, das den Clipping verursacht.

Das wird jedoch nicht immer funktionieren, in diesen Fällen können Sie es in eine Arbeitsfläche einwickeln und die Arbeitsfläche "schweben". Dieser Trick ist hier beschrieben: http://drwpf.com/blog/2007/12/28/cliptoboundsmaybe/

+0

Vielen Dank für Ihre schnelle Antwort! Und tut mir leid für meine verspätete Annahme. Das hat super funktioniert. Ich konnte es nur mit Margen betrügen, um es dort zu platzieren, wo ich es wollte. – Danno