【WPF】自定义Combobox

【WPF】自定义Combobox_第1张图片

一个Combobox 由以下四个部分组成,可分别设置样式

【WPF】自定义Combobox_第2张图片

设置ComboBoxItem样式

        

ComboBoxItem的属性 IsHighlighted 在获得焦点时触发, IsSelected 在被选中时触发

设置按钮样式

        

IsTabStop 在System.Windows.Controls 命名空间下,获取或设置是否允许通过Tab键导航到控件

控件的Focusable 属性确定控件是否允许接收键盘输入焦点。

在默认情况下,Focusable 为true的控件,其IsTabStop 属性也会为true。
当Focusable 属性为true,IsTabStop 属性为true的时候,控件可以接收键盘输入焦点,也可以通过Tab键导航到控件;
当Focusable 属性为true,IsTabStop 属性为false的时候,控件可以接收键盘输入焦点,但不可以通过Tab键导航到控件;
当Focusable 属性为false,控件不可以接收键盘输入焦点,IsTabStop 属性将会被忽略掉,不可以通过Tab键导航到控件;
如果控件的IsEnabled 属性设置为false, Focusable 属性和IsTabStop 属性都会被忽略。控件不可以接收键盘输入焦点,也不可以通过Tab键导航到控件。

ClickMode:指示何时引发Click事件。    Release(默认):鼠标释放时

Press:鼠标按下时        Hover:鼠标在按钮上游离时

设置Combobox样式

        

Popup:【WPF】Popup_阿月浑子2021的博客-CSDN博客   

IsItemsHost 属性用于指示在 ItemsControl(如需要处理列表的Combobox、ListBox 控件)的模板中,生成的元素应放在什么位置。如果将 StackPanel 的这一属性设置为 true,则添加到 Combobox 的所有项都将进入 StackPanel。此属性只对 Panel 类型有效。  

Combobox 的 Items 默认纵向排列,该为横向排列需将内容放在 StackPanel 或 WrapPanel 中,并将IsItemsHost 设为true。

绘制气泡的 Canvas 若过大,需穿透( IsHitTestVisible 设为 false),否则 Item 将无法聚焦。

完整 Style:xmal

         
        

        
        

        
        

前端:


    

你可能感兴趣的:(WPF,wpf)