C# Wpf:如何创建自定义ListBox控件
我想在wpf中创建一个菜单栏,就像在网站上一样。它应该有不同的菜单项,每次点击你都会进入另一个页面。主要的一点是,当鼠标悬停或单击某个项目时,它应该更改边框。因此,我认为定制列表框将是我的案例的最佳解决方案。我不想要usercontrol,它应该是自定义控件 我所拥有的: 我创建了一个从ListBox派生的类:C# Wpf:如何创建自定义ListBox控件,c#,wpf,xaml,listbox,wpf-controls,C#,Wpf,Xaml,Listbox,Wpf Controls,我想在wpf中创建一个菜单栏,就像在网站上一样。它应该有不同的菜单项,每次点击你都会进入另一个页面。主要的一点是,当鼠标悬停或单击某个项目时,它应该更改边框。因此,我认为定制列表框将是我的案例的最佳解决方案。我不想要usercontrol,它应该是自定义控件 我所拥有的: 我创建了一个从ListBox派生的类: public class MenuListBox : ListBox { public MenuListBox() { } } 并创建了一个资源字典来为列表框
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>
在这一点上,我不知道如何继续。该框还应该触发一个事件,以便我可以在框架或其他内容中更改页面。有人知道一个好的解决方案或任何文章/教程吗?谢谢,WPF已经有一个菜单对象,所以不需要自定义控件。为菜单创建自定义样式,并将其添加到应用程序资源中 有关设置菜单样式的帮助,请参见此处: