2016-01-04 2 views
0

Dans un DataTemplate de mon application UWP, je souhaite définir la hauteur d'un rectangle en% de la hauteur d'une image.Définition de la hauteur de l'objet xaml en% de l'autre objet xaml

Mon code ressemble à ceci.

<DataTemplate 
     x:Key="FlipViewTemplate"> 
     <Grid> 

       <Image 
        x:Name="image" 
        Margin="20" 
        Source="{Binding fullImgUrl}" 
        HorizontalAlignment="Center" 
        VerticalAlignment="Center" /> 
       <Rectangle 
        Height="{Binding 
        Converter={StaticResource PercentageConverter}, 
        ElementName=image, 
        Path=ActualHeight, 
        ConverterParameter=0.2}" 
        Fill="#FFEA1E1E" 
        VerticalAlignment="Bottom" /> 

     </Grid> 
    </DataTemplate> 

Et mon convertisseur comme celui-ci

public class PercentageConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     return System.Convert.ToDouble(value) * 
       System.Convert.ToDouble(parameter); 
    } 


    public object ConvertBack(object value, Type targetType, object parameter, string language) 
    { 
     throw new NotImplementedException(); 
    } 


} 

Mon problème est que la valeur du convertisseur qui devrait être le actualhight de l'image est toujours 0.

Répondre

1

Vous utilisez déjà une grille , vous pouvez donc simplement définir deux lignes. Dans l'exemple ci-dessous, le contrôle Image couvre les deux lignes, c'est-à-dire la totalité de la grille, tandis que le rectangle réside uniquement dans la deuxième ligne, qui a 20% de la hauteur totale.

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="4*"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Image Grid.RowSpan="2" .../> 
    <Rectangle Grid.Row="1" .../> 
</Grid> 
+0

C'est une solution beaucoup plus facile merci. –