【问题标题】:Wpf: How can I create a custom ListBox ControlWpf:如何创建自定义 ListBox 控件
【发布时间】: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


    【解决方案1】:

    WPF 已经有一个菜单对象,因此不需要自定义控件。为菜单创建自定义样式并将其添加到您的应用程序资源中。

    请参阅此处以获取有关设置菜单样式的帮助:http://www.jimnuzzi.com/2008/06/29/wpf-xaml-menuitem-styles/

    【讨论】:

      猜你喜欢
      • 2011-10-26
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多