У меня есть универсальное приложение для Windows с таким интерфейсом:
- Вертикальная сетка, определяющая количество строк
- Каждая строка представляет собой горизонтальную сетку с количеством столбцов
Мне бы хотелось, чтобы в каждой строке был индикатор выполнения, как показано на этом макете:
Я пытался использовать элемент управления ProgressBar
с установленным свойством Grid.ColSpan
, но индикатор выполнения отображается над текстом и кнопками, чтобы они не работали.
Моей следующей идеей было использование прямоугольника с шириной в процентах, но я не думаю, что можно указать относительную ширину.
Моя текущая идея состоит в том, чтобы реализовать пользовательское Brush
, которое я затем мог бы установить как свойство Background
для каждой горизонтальной сетки, но я не мог понять, как сделать собственное рисование внутри моей реализации Brush.
Образец XAML:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.Background>
<MyCustomBrush RelativeWidth="75%"/> ???
</Grid.Background>
<Button Content="{x:Bind ToggleSymbol, Mode=OneWay}" Grid.Column="0"></Button>
<Button Grid.Column="1" Content="Title"></Button>
<TextBlock Text="SubTitle" Margin="0,0,10,0" Grid.Column="3"></TextBlock>
<ProgressBar Visibility="Collapsed" Grid.Column="0" Grid.ColumnSpan="5" Value="75" Maximum="100" Background="Transparent" Foreground="Red"></ProgressBar>
</Grid>