標籤:技術分享 stack img container select font == tag txt
前台
<ListBox x:Name="listbox1" Margin="6"><ListBox.ItemTemplate><DataTemplate><Grid Margin="15" Tag="{Binding ImageID}" Tap="Post_Click"><StackPanel Orientation="Horizontal"><Image Source="{Binding Image}" Width="150" Height="120" Stretch="Fill"/><TextBlock Text="{Binding ImageName}" FontSize="30" TextWrapping="Wrap" Width="300"/></StackPanel></Grid></DataTemplate></ListBox.ItemTemplate></ListBox>
後台
private T FindFirstElementInVisualTree<T>(DependencyObject parentElement) where T : DependencyObject{var count = VisualTreeHelper.GetChildrenCount(parentElement);if (count == 0)return null;for (int i = 0; i < count; i++){var child = VisualTreeHelper.GetChild(parentElement, i);if (child != null && child is T){return (T)child;}else{var result = FindFirstElementInVisualTree<T>(child);if (result != null)return result;}}return null;}
需要綁定
private void Post_Click(object sender, System.Windows.Input.GestureEventArgs e){var selectedIndex = listbox1.SelectedIndex;ListBoxItem item = listbox1.ItemContainerGenerator.ContainerFromIndex(selectedIndex) as ListBoxItem;StackPanel border = FindFirstElementInVisualTree<StackPanel>(item);Image img = FindFirstElementInVisualTree<Image>(item);TextBlock txtBlock = FindFirstElementInVisualTree<TextBlock>(item);MessageBox.Show(txtBlock.Text.ToString());}
windows phone listbox的點擊事件