我已经自己实现了一个自定义面板(主要是处理项目的网格布局,具体取决于它们的大小和面板大小)。
我能够"导航"在项目之间(使用键盘箭头)并为其中一个提供视觉样式。
目前,我可以获得应该突出显示的UIElement
,但我不知道:
知道如何继续吗?
我还必须关注"这个元素,如果这可以帮助
答案 0 :(得分:0)
UIElement类型没有样式的概念,Style是在FrameworkElement上定义的属性,它派生自UIElement并为WPF元素提供一组属性,事件和方法。
如果您可以将UIElement作为FrameworkElement投射,则可以应用这样的样式
FrameworkElement frameworkElement = uiElement as FrameworkElement;
if (frameworkElement != null)
{
frameworkElement.Style = myStyle;
}
答案 1 :(得分:0)
您可以将自定义面板用作ListBox的ItemsPanel,例如
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
这里的想法ItemsControl: A-Z chapter I
ListBox将项目包装到ListBoxItem容器中并支持(开箱即用)选择(1个或多个项目)和所选项目突出显示(可以使用新样式进行自定义)。所有箭头键也正常工作。