Всплывающее окно триггера события WPF Listboxitem

Я в значительной степени застрял в этом и нуждаюсь в некотором понимании. Когда пользователь наводит указатель мыши на элемент списка, я хочу показать некоторые подробности, касающиеся элемента, над которым в данный момент находится указатель мыши (надеюсь, я понимаю: ()

Чтобы продемонстрировать, чего я хочу достичь, см. пример кода

public class Customer
{
    public String FirstName { get; set; }
    public Image CustomerPhoto { get; set; }

    public Customer(String firstName, Image customerPhoto)
    {
        this.FirstName = firstName;
        this.CustomerPhoto = customerPhoto;
    }

}

public class Customers : ObservableCollection<Customer>
{
    public Customers()
    {
        Image simpleImage = new Image();    
        BitmapImage bi = new BitmapImage();
        bi.BeginInit();
        bi.UriSource = new Uri(@"c:\image.jpg",UriKind.RelativeOrAbsolute);
        bi.EndInit();
        simpleImage.Source = bi; 
        Add(new Customer("Customer", simpleImage));
    }
}

XAML

<ListBox ItemsSource="{StaticResource customers}">
  <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding FirstName}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Теперь, когда пользователь наводит курсор на элемент списка, я хочу показать фотографию клиента во всплывающем окне.

Огромное спасибо

P.S: код был "состряпан" при написании этого поста, так что только для демо. В списке будет несколько элементов, при наведении курсора на каждый элемент должна отображаться фотография, связанная с этим объектом.


person Anand Shah    schedule 24.10.2011    source источник


Ответы (1)


Почему бы просто не использовать ToolTip? В WPF всплывающие подсказки не обязательно должны быть только текстовыми.

<TextBlock.ToolTip>
    <ToolTip>
        <Image Source="{Binding CustomerPhoto}" />
    </ToolTip>
</TextBlock.ToolTip>
person Rachel    schedule 24.10.2011
comment
Есть ли способ держать всплывающую подсказку открытой, пока мышь не наведется на элемент? - person Anand Shah; 24.10.2011
comment
Вы можете использовать ToolTipService.ShowDuration на TextBox, чтобы указать, как долго TextBox должен держать всплывающую подсказку открытой. Я не уверен, что возможно бесконечное значение, но я знаю, что вы можете установить его на что-то действительно большое. - person Rachel; 24.10.2011