Как создать границу вокруг LongListSelector SelectedItem

Я хотел бы создать рамку вокруг выбранного элемента в пределахLongListSelector, но у меня проблемы с получением правильной реализации. От ссылкиhttp://code.msdn.microsoft.com/wpapps/Highlight-a-selected-item-30ced444 Я пытался следовать примеру кода, создавая пользовательскийStyle управлять изменением выбранного элемента, хотя я пытаюсь разместить рамку вокруг изображения вместо текстового поля. Кроме того, у меня есть обычайItemTemplate Как мойDataTemplate для меняLongListSelector который управляет размером моих связанных изображений и контролирует необходимыйContextMenu за каждый предмет.

По какой-то причине у меня возникают проблемы с адаптацией образца для размещения рамки вокруг выбранного элемента, но до сих пор у меня получилось следующее

MainPage.xaml



    
        
        
            
                
            
            
                
                    
                    
                    
                
            
        
    



...


App.xaml


        
        
        
        
            
                
                    
                        
                            
                                
                                    
                                    
                                        
                                            
                                                
                                            
                                        
                                    
                                
                            
                            
                        
                    
                
            
        
    

MainPage.xaml.csI»

private void recent_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        var s = sender as LongListSelector;
        var item = (sender as LongListSelector).SelectedItem;
        if (item == null)
            return;

        // Get item of LongListSelector.
        List listItems = new List();
        GetItemsRecursive(Recent, ref listItems);

        // Selected.
        if (e.AddedItems.Count > 0 && e.AddedItems[0] != null)
        {
            foreach (UserControl userControl in listItems)
            {
                if (e.AddedItems[0].Equals(userControl.DataContext))
                {
                    VisualStateManager.GoToState(userControl, "Selected", true);
                }
            }
        }
        // Unselected.
        if (e.RemovedItems.Count > 0 && e.RemovedItems[0] != null)
        {
            foreach (UserControl userControl in listItems)
            {
                if (e.RemovedItems[0].Equals(userControl.DataContext))
                {
                    VisualStateManager.GoToState(userControl, "Normal", true);
                }
            }
        }
    }

public static void GetItemsRecursive(DependencyObject parents, ref List objectList) where T : DependencyObject
    {
        var childrenCount = VisualTreeHelper.GetChildrenCount(parents);

        for (int i = 0; i < childrenCount; i++)
        {
            var child = VisualTreeHelper.GetChild(parents, i);

            if (child is T)
            {
                objectList.Add(child as T);
            }

            GetItemsRecursive(child, ref objectList);
        }

        return;
    }

Я застрял на том, что делать отсюда, какие-либо идеи?

EDIT ** немного изменил реализацию, но все еще не работает.

MainPage.xaml



    
        
        
        
        
            
                
                    
                        
                        
                            
                                
                                    
                                    
                                        
                                            
                                            
                                                
                                            
                                        
                                    
                                
                            
                            
                                
                                
                                    
                                
                                
                                    
                                        
                                        
                                        
                                    
                                
                            
                            
                        
                    
                
            
        
    


...


MainPage.xaml.cs

//remains the same

Ответы на вопрос(2)

Ваш ответ на вопрос