如何从代码中将分隔符添加到列表框并将其转换为不可选择
How to add a separator to a listBox from code AND cast it to not selectable
这就是我所做的并且有效:
if (condition...)
{
ComboBoxItem cbi2 = new ComboBoxItem();
cbi2.Content = new TextBox() { Background= Brushes.Red, HorizontalAlignment= HorizontalAlignment.Stretch, Margin=new Thickness(0) , Height = 5, IsHitTestVisible=false, BorderBrush=null};
ibw.cmbOptions.Items.Add(cbi2);
}
唯一的问题是尽管文本框不是 IsHitTestVisible,但它是可选的,这是一个问题。所以我也对完全不同的解决方案持开放态度。唯一的限制是根据代码行事。
我可以在这里看到 2 个选项:
首先,简单地使用 Separator
元素:
ibw.cmbOptions.Items.Add(new Separator());
或者,您可以禁用 ComboBoxItem
,这将使 ComboBox
无法选择。
ComboBoxItem cbi2 = new ComboBoxItem();
cbi2.IsEnabled = false;
cbi2.Content = new TextBox() { Background= Brushes.Red, HorizontalAlignment= HorizontalAlignment.Stretch, Margin=new Thickness(0) , Height = 5, IsHitTestVisible=false, BorderBrush=null};
ibw.cmbOptions.Items.Add(cbi2);
这就是我所做的并且有效:
if (condition...)
{
ComboBoxItem cbi2 = new ComboBoxItem();
cbi2.Content = new TextBox() { Background= Brushes.Red, HorizontalAlignment= HorizontalAlignment.Stretch, Margin=new Thickness(0) , Height = 5, IsHitTestVisible=false, BorderBrush=null};
ibw.cmbOptions.Items.Add(cbi2);
}
唯一的问题是尽管文本框不是 IsHitTestVisible,但它是可选的,这是一个问题。所以我也对完全不同的解决方案持开放态度。唯一的限制是根据代码行事。
我可以在这里看到 2 个选项:
首先,简单地使用 Separator
元素:
ibw.cmbOptions.Items.Add(new Separator());
或者,您可以禁用 ComboBoxItem
,这将使 ComboBox
无法选择。
ComboBoxItem cbi2 = new ComboBoxItem();
cbi2.IsEnabled = false;
cbi2.Content = new TextBox() { Background= Brushes.Red, HorizontalAlignment= HorizontalAlignment.Stretch, Margin=new Thickness(0) , Height = 5, IsHitTestVisible=false, BorderBrush=null};
ibw.cmbOptions.Items.Add(cbi2);