api-approvedarea-controls-ListViewhelp wantedtenet-compatibility-OS
倉庫指標
- Star
- (4,100 star)
- PR 合併指標
- (平均合併 14天 22小時) (30 天內合併 56 個 PR)
描述
In Windows Vista, more LVCOLUMN features were added: see https://docs.microsoft.com/en-us/windows/win32/api/commctrl/ns-commctrl-lvcolumnw
Missing Features
Minimum Width
- Can set the
LVCF_MINWIDTHflag onmaskand set thecxMinvalue
Would add the following API on ColumnHeader
public class ColumnHeader
{
...
public int MinimumWidth { get; set; } = 0;
...
}
E.g.
Notice that when resizing the column its minimum width is 100 pixels

Fixed Width Columns
- Can set the
LVCF_FMTflag onmaskan set theLVCFMT_FIXED_WIDTHflag onfmt
Would add the following API on ColumnHeader
public class ColumnHeader
{
...
public bool FixedWidth { get; set; } = false;
...
}
E.g.
Notice that the column can't be resized

Split Button Columns
- Can set the
LVCF_FMTflag onmaskan set theLVCFMT_SPLITBUTTONflag onfmt
Would add the following API on ListView and ColumnHeader
public class ColumnDropDownClickEventArgs : ColumnClickEventArgs
{
public ColumnDropDownClickEventArgs(int column, Point screenLocation);
public Point ScreenLocation { get; set; }
}
public class ListView
{
...
public event ColumnDropDownClickedEventHandler ColumnDropDownClicked { add; remove; }
protected void OnColumnDropDownClicked(ColumnDropDownClickEventArgs e);
...
}
public class ColumnHeader
{
...
public bool SplitButton { get; set; } = false;
...
}
E.g.

Discussion
- Should we consolidate things like Split Button and Fixed width into a flags enum and add this as a property (e.g.
Style) onColumnHeader
[Flags]
public enum ColumnHeaderStyles
{
None,
FixedWidth = X,
SplitButton = Y
}
/cc @weltkante