2011-01-05 3 views
2

기본적으로 ItemsControl의 항목을 정의하는 DataTemplate이 있는데 그 항목을 클릭하면 해당 항목 위에 연설 거품이 나타납니다. 지금까지 내 시도는 내 adorner가 DataTemplate 내부에 나타나서 대신 위에 DataTemplate 경계에 의해 잘리는 것으로 이어졌습니다. 나는 여기에 찾을 수있는 멋진 adorner 컨트롤을 사용하고있다 : http://www.codeproject.com/KB/WPF/adornedcontrol.aspx.데이터 템플릿 외부의 DataTemplate 항목에 adorner를 추가 할 수 있습니까?

내 XAML은 다음과 같습니다

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

어떤 생각? 내가 꾸미는 사람들과도 가능한 것을 시도하고 있습니까?

답변

1

예 가능합니다. 먼저 클리핑을 유발하는 요소에 ClipToBounds = false를 설정합니다.

그러나 항상 작동하지는 않습니다.이 경우 캔버스에 포장하고 캔버스를 "플로트"할 수 있습니다. 이 트릭은 여기에 설명되어 있습니다 : http://drwpf.com/blog/2007/12/28/cliptoboundsmaybe/

+0

답장을 보내 주셔서 감사합니다! 그리고 늦어서 죄송합니다. 그 일은 훌륭했습니다. 나는 그것을 원했던 곳에 그것을 놓기 위해 여백으로 그것을 속일 수 있었다. – Danno