Я пытаюсь создать кнопку в WPF, которая будет показывать прогресс, но текст кнопки все еще виден.
Я попытался добавить Grid
в качестве дочернего элемента к кнопке и добавить ProgressBar
и Label
в сетку, думая, что Grid
заполнит кнопку, а использование VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
на индикаторе выполнения и метке даст мне, в основном, интерактивную полосу выполнения, которая может показывать прогресс и иметь метку поверх нее . Однако у меня проблема с размером.
Это мой XAML:
<Button Grid.Column="0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MinWidth="100" MinHeight="25" Margin="3">
<Grid>
<ProgressBar Value="10" Maximum="20" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
<Label Content="asd2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>
</Grid>
</Button>
Вот что я вижу:
Если я перейду на явный размер:
<Button Grid.Column="0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MinWidth="100" MinHeight="25" Margin="3">
<Grid>
<ProgressBar Value="10" Maximum="20" Width="100" Height="30" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
<Label Content="asd2" Width="100" Height="30" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>
</Grid>
</Button>
, я получу:
Который , визуально, это улучшение, но XAML-программно хуже, так как я хочу, чтобы кнопка меняла размер вместе с окном, если пользователь не может ее хорошо видеть или что-то в этом роде. Кроме того, визуально - мне не нравится эта маленькая граница между фактической кнопкой и началом полосы прогресса, и я попытался установить для "padding" и "margin" значение 0, это не так.
Что я хотел бы видеть - индикатор выполнения занимает ВСЕ пространство кнопки, а текст метки остается центрированным как по вертикали, так и по горизонтали относительно общего размера кнопки.