Всплывающее окно с показом события триггера WPF - PullRequest
0 голосов
/ 24 октября 2011

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

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

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: код был «составлен» при написании этого поста, так что только для демонстрации. В списке будет несколько элементов, при наведении курсора на каждый элемент должна отображаться фотография, связанная с этим объектом.

1 Ответ

0 голосов
/ 24 октября 2011

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

<TextBlock.ToolTip>
    <ToolTip>
        <Image Source="{Binding CustomerPhoto}" />
    </ToolTip>
</TextBlock.ToolTip>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...