var promises = []
function dbOp(value) {
return new Promise(function(resolve, reject) {
conn.query('INSERT INTO test (serial) VALUES (?);',
[value], function (err, results, fields) {
if (err) {
return reject(err)
}
else {
console.log("Added stuff");
resolve(results)
}
}
}
conn.connect(function(err){
if(err){
throw err;
}
else{
for (i = 0; i < array.length; ++i) {
promises.push(dbOp(array[i]));
}
}
});
Promise.all(promises)
.then((results) => {
console.log("done", results);
})
.catch((e) => {
console.log(e)
});
Можно взять пример Bryan еще немного далее. Путем определения определенного выравнивания, которое не является фрагментом и далее ограничивает TextBox так, чтобы это не расширялось вне определенного размера. например:
<Grid x:Name="LayoutRoot">
<TextBox HorizontalAlignment="Left" VerticalAlignment="Top" Text="TextBox" TextWrapping="Wrap"
MinWidth="15" MinHeight="20" MaxWidth="500" MaxHeight="50"/>
</Grid>
Можно использовать его еще больше путем установки строк/столбцы в Сетке и ограничения их различными способами. Поскольку Вы происходите из фона содержимого HTML, думаете о нем как использование таблицы к расположению органов управления. Помните, что можно также вложить другие контейнерные объекты (т.е. StackPanels, WrapPanels, другие Сетки, и т.д....).
Проблема с XAML и средствами управления WPF/Silverlight состоит в том, что они очень гибкое, таким образом, необходимо разобраться со всеми опциями и как они влияют на расположение.
Удачи. Я прохожу эту точно ту же самую вещь теперь.
Используйте другой контейнер. Сетка всегда расширяет свои дочерние элементы управления для заполнения ячейки сетки.
Вы могли использовать, например, stackpanel, который только расширяет его средства управления в одном направлении.
В дополнение к использованию другой панели, поскольку Stefan упомянул, что Вы могли просто дать TextBox выравнивание, которое не является Фрагментом. например.
<TextBox Name="theName" HorizontalAlignment="Left" VerticalAlignment="Top"/>
Размеры в WPF не являются пикселями, они - "независимые от устройств пиксели", которые являются 1/96 дюйма - так в сегодняшней нормальной установке DPI они карта 1:1 к пикселям.
Но, если Вы запустите программу в высоком режиме DPI, то TextBox вырастет с DPI (и шрифт).
Так установка трудно кодированного размера не является этим плохо.
Кроме этого можно только использовать HorizontalAlignment и VerticalAlignment, которые не являются "Фрагментом", это измерит TextBox к содержанию - но затем пустой TextBox будет крошечным.
Можно установить VerticalAlignment, чтобы "Центрировать", "Превысить" или "Достигнуть низшей точки" для получения автоматической высоты приблизительно одной строки (возможно, сохраненный установкой MinHeight, чтобы избежать проблем действительно крошечные шрифты) и затем установить Ширину, таким образом, Текстовое поле width не изменяется, поскольку пользователь вводит в него.