【发布时间】:2016-04-19 12:16:19
【问题描述】:
我想在 wpf 中创建一个菜单栏,就像网站上的菜单栏一样。它应该有不同的菜单项,每次点击你都会进入另一个页面。要点是,它应该在悬停或单击项目时更改边框。所以我认为自定义列表框将是我的案例的最佳解决方案。我不想要用户控件,它应该是自定义控件。
我有什么: 我创建了一个派生自 ListBox 的类:
public class MenuListBox : ListBox
{
public MenuListBox()
{
}
}
并创建了一个资源字典来模板化列表框。我还将它作为合并字典添加到 generic.xaml 文件中。
<ResourceDictionary>
<Style TargetType="ListBoxItem">
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Controls:MenuListBox" BasedOn="{StaticResource {x:Type ListBox}}">
</Style>
</ResourceDictionary>
此时我不知道如何继续。该框还应该触发一个事件,以便我可以更改框架中的页面或其他内容。有谁知道一个好的解决方案或任何文章/教程?谢谢
【问题讨论】:
标签: c# wpf xaml listbox wpf-controls