我已经制作了自己的自定义面板(主要处理项目的网格布局,取决于它们的大小和面板大小)。将样式应用于自定义面板的一个子元素?
我必须能够在项目之间“导航”(使用键盘箭头),并为其中的一个提供视觉样式。
目前我能得到应强调UIElement
,但我不知道:
- 我如何应用样式?
- 要应用哪种风格?由于我不知道包含什么样的元素,所以我想也许在光标周围应用一些边框
任何想法如何进行?
我也会有以“专注”这个元素,如果这能帮助
我已经制作了自己的自定义面板(主要处理项目的网格布局,取决于它们的大小和面板大小)。将样式应用于自定义面板的一个子元素?
我必须能够在项目之间“导航”(使用键盘箭头),并为其中的一个提供视觉样式。
目前我能得到应强调UIElement
,但我不知道:
任何想法如何进行?
我也会有以“专注”这个元素,如果这能帮助
的UIElement类型不具有的风格理念,风格是FrameworkElement的定义的属性,其自UIElement派生,并提供了一个一组WPF元素的属性,事件和方法。
如果你能投你的UIElement的FrameworkElement的,你可以应用该样式这样
FrameworkElement frameworkElement = uiElement as FrameworkElement;
if (frameworkElement != null)
{
frameworkElement.Style = myStyle;
}
好的,我可以做,但是应用什么风格?既然我只知道这是一个FrameworkElement?我不知道它周围的财产 – J4N
如果你想手动应用一个样式,你将不得不知道你的样式,否则整个想法是没有意义的。您可以获取元素的类型并使用它来查找以该类型为目标的样式。 –
可以使用自定义面板作为ItemsPanel的列表框,例如
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
这里找到ItemsControl: A-Z chapter I
ListBox的包装物品进入ListBoxItem的容器和支持(在箱子外面)选择(1个或多个项目),选择的项目亮点(可以用一种新的风格进行定制)的想法。所有的箭头键也工作。
我会尝试,但我不确定箭头键如何与网格布局一起工作(这意味着上下应该更改行,左右应该改变列) – J4N
您可以使用该自定义面板作为ListBox的ItemsPanel。 ListBox允许选择一个或多个元素(为每个数据项目创建一个ItemContainer(ListBoxItem)),因此您可以自定义选定的ListBoxItem风格 – ASh
@ASh这似乎是一个好主意!你在哪里处理键盘按键?你应该回答你的建议 – J4N