Хочу сделать окно с полем ввода. При открытии окна высота поля ввода TextBox
должна быть строго 100 px, а размер окна должен подстроиться под высоту TextBox
. Но после открытия окна, если менять его размеры, высота TextBox
тоже должна меняться.
Способ задать высоту окна не подходит, потому что тогда высота TextBox
при разных темах Windows будет разная.
<Window SizeToContent="Height">
<TextBox Margin="20"
InitialHeight="100" />
</Window>
UPD:
Упрощаем задачу: как задать, чтобы высота рабочей области окна при открытии была 100 px, но потом менялась вместе с размером окна?
<Window SizeToContent="Height">
<Grid Height="100" Background="Yellow" />
</Window>
Первое решение оказалось сложным:
public MainWindow()
{
InitializeComponent();
textBox.Height = 100;
double firstHeight = 0;
this.SizeChanged += (s, e) => // TODO: отписаться от события
{
if (firstHeight == 0)
firstHeight = this.Height;
else if (this.Height != firstHeight)
textBox.Height = double.NaN;
}
}
Второе решение получилось намного изящней:
<Window SizeToContent="Height">
<TextBox Margin="20" Height="100" />
</Window>
public MainWindow()
{
InitializeComponent();
Loaded += (s, e) =>
{
ClearValue(SizeToContentProperty); // this.SizeToContent = SizeToContent.Manual;
textBox.ClearValue(HeightProperty); // textBox.Height = double.NaN;
};
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть таблица которая наполовину состоит из внешних ключейКак в Laravel через фасад DB построить запрос, чтобы вместо ключей выводилась полная...
Пытаюсь расширить форму регистрации, добавить к стандартным полям новые, например телефон
yii2, рендерю view записи, также нужно добавлять кнопки "вперед" и "назад", для навигации по записям