Могу ли я добавить рекламное объявление в элемент DataTemplate вне шаблона данных? - PullRequest
2 голосов
/ 06 января 2011

По сути, у меня есть DataTemplate, который определяет элементы в ItemsControl, и я хочу, чтобы при нажатии на него над словом всплывал речевой пузырь.Пока что мои попытки приводят к тому, что мой рекламодатель появляется внутри DataTemplate и обрезается по границам этого DataTemplate вместо того, чтобы находиться над ним.Я использовал отличный элемент управления Adorner, который можно найти здесь: http://www.codeproject.com/KB/WPF/adornedcontrol.aspx.

Мой 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 Ответ

1 голос
/ 06 января 2011

Да, это возможно.Первое, что я бы попробовал, это установить ClipToBounds = false для элемента, который вызывает отсечение.

Это не всегда работает, однако, в этих случаях вы можете обернуть его в холст и "плавать" холст.Этот трюк описан здесь: http://drwpf.com/blog/2007/12/28/cliptoboundsmaybe/

...