Контроль как фон сетки - PullRequest
       30

Контроль как фон сетки

1 голос
/ 13 октября 2011

У меня есть сетка, и мне нужно иметь элемент управления в качестве фона этой сетки. Этот элемент управления будет индикатором выполнения, но моя проблема в том, как его создать.

Я не могу найти, как установить элемент управления в качестве фона сетки.

Есть ли у вас опыт работы с подобными проблемами?

    <DataTemplate x:Key="TodoItemWeeklyTemplate">
        <Grid MinWidth="800" Background="Transparent">

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>

            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>

            <Image Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="{Binding Occurrence.Appointment.Icon, Converter={StaticResource imgConverter}}" Width="16" Height="16" Stretch="Fill" />
            <TextBlock Grid.Column="1" HorizontalAlignment="Left" MaxWidth="130" Text="{Binding Occurrence.Appointment.Subject}" />

        </Grid>
    </DataTemplate>

Ответы [ 2 ]

1 голос
/ 13 октября 2011

Вы не можете установить элемент управления в качестве фона, так как он имеет Brush Тип.

Но если вы хотите подражать этому, вы можете поместить свою Решётку в такую:

<Grid>

   <Grid>
      <!-- put your Content here -->
   </Grid>

   <ProgressBar />

</Grid>
1 голос
/ 13 октября 2011

Вот как бы я это сделал: -

    <Grid MinWidth="800">
        <Rectangle x:Name="Background" Fill="Green" Width="{Binding PercentDone, Converter={StaticConverter WidthConv}, ConverterParameter=800}" HorizontalAlignment="Left" />
        <Grid Background="Transparent"> 

            <Grid.ColumnDefinitions> 
                <ColumnDefinition Width="Auto" /> 
                <ColumnDefinition Width="*" /> 
            </Grid.ColumnDefinitions> 

            <Grid.RowDefinitions> 
                <RowDefinition Height="*" /> 
            </Grid.RowDefinitions> 

            <Image Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="{Binding Occurrence.Appointment.Icon, Converter={StaticResource imgConverter}}" Width="16" Height="16" Stretch="Fill" /> 
            <TextBlock Grid.Column="1" HorizontalAlignment="Left" MaxWidth="130" Text="{Binding Occurrence.Appointment.Subject}" /> 

        </Grid>
    </Grid>

Где WidthConv - это экземпляр класса, добавленного к ресурсам usercontrol, который реализует IValueConverter. Метод Convert будет принимать входное процентное значение и применять его к параметру, чтобы вернуть ширину, которой должен быть прямоугольник, для представления этого процентного значения.

Важным моментом здесь является то, что Grid естественным образом накладывает элементы друг на друга, когда занимают одну и ту же область.

...