2011-10-24 16 views
0

私はこれにかなり拘束されており、いくつかの洞察力が必要です。ユーザーのマウスオーバーは私が達成したいと思っています何を実証するために、私はマウスが現在オーバーされている項目に関するいくつかの詳細を表示したいlistboxitem(:(私が感覚を作っています願っています)WPF Listboxitemイベントトリガーを表示するポップアップ

だときのサンプルコード

を参照してください。ユーザーがリストボックスの項目の上に置いたときにXAML

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

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)); 
    } 
} 

は今、私がポップアップでcustomerphotoを示したいと思います。

多くのTh anks

P.S:この記事を書いている間、コードは "調理されました"ので、デモ専用です。リストボックスには複数のアイテムが表示されます。各アイテムの上にカーソルを置くと、そのオブジェクトに関連付けられた写真が表示されます。

答えて

0

なぜToolTipを使用しないのですか? WPFでは、ツールチップはテキストのみである必要はありません

<TextBlock.ToolTip> 
    <ToolTip> 
     <Image Source="{Binding CustomerPhoto}" /> 
    </ToolTip> 
</TextBlock.ToolTip> 
+0

マウスが項目の上に来るまでツールチップを開いたままにする方法はありますか? –

+0

'TextBox'で' ToolTipService.ShowDuration'を使用して、TextBoxがツールチップを開いたままにする期間を指定することができます。無限の価値があれば肯定的ではありませんが、本当に大きなものに設定することができます。 – Rachel

関連する問題