2011-10-13 62 views
1

我有一個網格,我需要有一個控件作爲這個網格的背景。這個控件將是一個進度條,但是我的問題是如何創建它。作爲網格背景的控制

我找不到如何設置控件作爲網格的背景。

你有這種問題的經驗嗎?

<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> 

回答

1

這裏是我會怎麼做: -

<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添加到實現IValueConverter用戶控件資源類的一個實例。 Convert方法將獲取輸入百分比值並將其應用於參數以返回矩形需要表示該百分比值的寬度。

這裏重要的一點是,Grid當佔據相同區域時自然重疊元素。

1

您不能將控件設置爲背景,因爲它的類型爲Brush

但是如果你想效仿,你可以把你的網格在一個又一個這樣的:

<Grid> 

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

    <ProgressBar /> 

</Grid>