Как создать границу вокруг 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