foreach (TableContainer table in listOpenUnjoinedTables)
{
var item = new Label();
item.MouseEnter += item_MouseEnter;
item.MouseLeave += item_MouseLeave;
if (table.IsVirtual == false)
{
item.Content = "[" + table.TableDescription + "]";
}
else
{
item.Content = "[" + table.View.Name + "]";
}
item.Tag = table;
cmb.Items.Add(item);
if (item.ActualWidth > largestWidth)
{
largestWidth = item.ActualWidth;
}
}
if (largestWidth != 0)
{
foreach (Label label in cmb.Items)
{
label.Width = largestWidth;
}
}
}
У меня есть ComboBox и добавляю к нему ярлыки вместо ComboBoxItems. Я бы хотел, чтобы метки заполнили все пространство в раскрывающемся списке. Я пытаюсь выполнить код выше, однако ширина метки всегда возвращается как 0, поэтому мой код не работает.Установите размер, чтобы заполнить пробел
Как это сделать? Я хотел бы, чтобы элементы (метки) ComboBox заполнили всю ширину списка выпадающего списка.
Почему вы создаете элементы пользовательского интерфейса в коде для начала? Для этого и предназначен XAML. –
@HighCore - он создается динамически во время выполнения. Это просто быстрое приложение-пример – WPF
Неверно. Если вам нужен динамический интерфейс, используйте 'DataTemplates' и, возможно,' ItemsControl'. Не создавайте элементы интерфейса в коде. это не выиграть (взломать) формы. Даже если это быстрое приложение, сделайте это правильно. –