SimpleWindow
载入中...
搜索中...
未找到
ListBox.h
1#pragma once
2
3#include "ItemsControl.h"
4#include "ObservableCollection.h"
5
6namespace sw
7{
11 class ListBox : public ItemsControl
12 {
13 private:
17 using TBase = ItemsControl;
18
23
27 double _itemHeight = -1;
28
32 Color _selectedItemBackColor{GetSysColor(COLOR_HIGHLIGHT)};
33
37 Color _selectedItemTextColor{GetSysColor(COLOR_HIGHLIGHTTEXT)};
38
39 public:
44
49
54
59
64
65 public:
70
74 void Refresh();
75
81
82 protected:
89
96
102
107
112
118
124
131 virtual bool OnContextMenu(bool isKeyboardMsg, const Point &mousePosition) override;
132
139
145 virtual std::wstring GetDisplayText(int index, const Variant &item);
146
147 private:
152 void _SetCount(int count);
153
157 void _UpdateCount();
158
162 void _UpdateItemHeight();
163 };
164}
非模板列表接口,提供基于Variant的元素访问
Definition IList.h:11
值转换器接口
Definition IValueConverter.h:14
表示可用于呈现一组项的控件
Definition ItemsControl.h:13
ItemsControl()
构造函数
列表框
Definition ListBox.h:12
virtual int GetSelectedIndex() override
选中项的索引,当无选中项时为-1
virtual void OnCommand(int code) override
当父窗口接收到控件的WM_COMMAND时调用该函数
void Refresh()
刷新控件以反映数据源的当前状态
const Property< Color > SelectedItemTextColor
选中项的文本颜色
Definition ListBox.h:63
virtual void OnCurrentItemsSourceCollectionChanged(const NotifyCollectionChangedEventArgs &args) override
当数据源集合发生变更时调用该函数
virtual void OnCurrentItemsSourceChanged(IList *oldItemsSource, IList *newItemsSource) override
当前数据源改变时调用该函数
const Property< int > TopIndex
当前列表框页面第一个子项的索引
Definition ListBox.h:53
ListBox()
初始化列表框
virtual IList * GetDefaultItemsSource() override final
获取默认数据源,当ItemsSource未设置时使用该数据源
const Property< Color > SelectedItemBackColor
选中项的背景颜色
Definition ListBox.h:58
const ReadOnlyProperty< ObservableCollection< std::wstring > * > Items
列表框的子项集合,当未设置ItemsSource时使用该集合作为数据源
Definition ListBox.h:43
int GetItemIndexFromPoint(const Point &point)
获取指定点处子项的索引
virtual void SetSelectedIndex(int index) override
设置选中项索引
virtual bool OnDrawItemSelf(DRAWITEMSTRUCT *pDrawItem) override
父窗口接收到WM_DRAWITEM后且父窗口OnDrawItem函数返回false时调用发出通知控件的该函数
virtual bool OnContextMenu(bool isKeyboardMsg, const Point &mousePosition) override
接收到WM_CONTEXTMENU后调用目标控件的该函数
const Property< double > ItemHeight
列表框子项的高度,负值表示根据字体自动计算高度
Definition ListBox.h:48
virtual std::wstring GetDisplayText(int index, const Variant &item)
获取子项要显示的文本
集合变更事件参数类型
Definition INotifyCollectionChanged.h:33
通用变体类型容器,类型擦除地持有任意类型对象
Definition Variant.h:36
SimpleWindow框架的顶级命名空间,所有公共类型、控件、枚举和工具函数均定义于此。
Definition Alignment.h:4
@ FontChanged
字体改变时更新布局
颜色
Definition Color.h:16
表示相对于左上角的点坐标
Definition Point.h:15