刚学C#和串口通信,遇见了个怪事。ListBox控件只有一个ListBoxItem时显示正常,但是超过一个就不显示了。
这是正常显示。这是Xaml代码。但是只要我再增加一个ListBoxItem如COM1他就不正常显示了。如图。有没有哪个大神遇到过这种情况啊?ListBox

解决方案 »

  1.   

    建议你在这用Combobox,下拉框比你这ListBox符合需求
      

  2.   

    谢谢各位了,我自己发现原因了。把宽度改成65就正常显示了,真搞不懂宽度怎么影响显示呢,一个的时候能正常显示啊。另外我想问在xaml中静态设置和动态获取不能同时有吗?
    string[] ports = SerialPort.GetPortNames(); 
    Array.Sort(ports);
    foreach (String s in ports) { listBox1.Items.Add(s); }
    listBox1.SelectedIndex = 3;
    但是它总是显示第一个,我确定获取的串口足够。
    另外我用MessageBox.Show(listBox1.SelectedItem.ToString());检查是否获取到串口。发现动态获取的显示正确显示COM5而静态设置的却显示System.Windows.Controls.ListBoxItem:COM7。