Partager via


Comment : définir les propriétés Height d'un élément

Exemple

Cet exemple montre visuellement les différences de comportement de rendu entre les quatre propriétés liées à la hauteur dans Windows Presentation Foundation (WPF).

La FrameworkElement classe expose quatre propriétés qui décrivent les caractéristiques de hauteur d’un élément. Ces quatre propriétés peuvent entrer en conflit et, lorsqu’elles le font, la valeur qui est prioritaire est déterminée comme suit : la MinHeight valeur est prioritaire sur la MaxHeight valeur, qui à son tour est prioritaire sur la Height valeur. Une quatrième propriété, ActualHeightest en lecture seule et signale la hauteur réelle telle que déterminée par les interactions avec le processus de disposition.

Les exemples XAML (Extensible Application Markup Language) suivants dessinent un Rectangle élément (rect1) en tant qu’enfant de Canvas. Vous pouvez modifier les propriétés de hauteur d’un Rectangle à l’aide d’une série d’éléments qui représentent les valeurs de ListBox propriété , MinHeightMaxHeightet Height. De cette façon, la priorité de chaque propriété est affichée visuellement.

<Canvas Height="200" MinWidth="200" Background="#b0c4de" VerticalAlignment="Top"  HorizontalAlignment="Center" Name="myCanvas" Margin="0,0,0,50">
    <Rectangle HorizontalAlignment="Center" Canvas.Top="50" Canvas.Left="50"  Name="rect1" Fill="#4682b4" Height="100" Width="100"/>
</Canvas>
  <TextBlock Grid.Row="1" Grid.Column="0" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle Height:</TextBlock>
  <ListBox Grid.Column="1" Grid.Row="1" Margin="10,0,0,0" Height="50" Width="50" SelectionChanged="changeHeight">
    <ListBoxItem>25</ListBoxItem>
    <ListBoxItem>50</ListBoxItem>
    <ListBoxItem>75</ListBoxItem>
    <ListBoxItem>100</ListBoxItem>
    <ListBoxItem>125</ListBoxItem>
    <ListBoxItem>150</ListBoxItem>
    <ListBoxItem>175</ListBoxItem>
    <ListBoxItem>200</ListBoxItem>
  </ListBox>

  <TextBlock Grid.Row="1" Grid.Column="2" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle MinHeight:</TextBlock>
  <ListBox Grid.Column="3" Grid.Row="1" Margin="10,0,0,0" Height="50" Width="50" SelectionChanged="changeMinHeight">
    <ListBoxItem>25</ListBoxItem>
    <ListBoxItem>50</ListBoxItem>
    <ListBoxItem>75</ListBoxItem>
    <ListBoxItem>100</ListBoxItem>
    <ListBoxItem>125</ListBoxItem>
    <ListBoxItem>150</ListBoxItem>
    <ListBoxItem>175</ListBoxItem>
    <ListBoxItem>200</ListBoxItem>
</ListBox>      
   
  <TextBlock Grid.Row="1" Grid.Column="4" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle MaxHeight:</TextBlock>
  <ListBox Grid.Column="5" Grid.Row="1" Margin="10,0,0,0" Height="50" Width="50" SelectionChanged="changeMaxHeight">
    <ListBoxItem>25</ListBoxItem>
    <ListBoxItem>50</ListBoxItem>
    <ListBoxItem>75</ListBoxItem>
    <ListBoxItem>100</ListBoxItem>
    <ListBoxItem>125</ListBoxItem>
    <ListBoxItem>150</ListBoxItem>
    <ListBoxItem>175</ListBoxItem>
    <ListBoxItem>200</ListBoxItem> 
  </ListBox>

Les exemples code-behind suivants gèrent les événements que l’événement SelectionChanged déclenche. Chaque gestionnaire prend l’entrée à partir du ListBox, analyse la valeur sous la forme d’un Double, et applique la valeur à la propriété associée à la hauteur spécifiée. Les valeurs de hauteur sont également converties en chaîne et écrites dans différents TextBlock éléments (la définition de ces éléments n’est pas affichée dans le code XAML sélectionné).

private void changeHeight(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
    Double sz1 = Double.Parse(li.Content.ToString());
    rect1.Height = sz1;
    rect1.UpdateLayout();
    txt1.Text= "ActualHeight is set to " + rect1.ActualHeight;
    txt2.Text= "Height is set to " + rect1.Height;
    txt3.Text= "MinHeight is set to " + rect1.MinHeight;
    txt4.Text= "MaxHeight is set to " + rect1.MaxHeight;
}
private void changeMinHeight(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
    Double sz1 = Double.Parse(li.Content.ToString());
    rect1.MinHeight = sz1;
    rect1.UpdateLayout();
    txt1.Text= "ActualHeight is set to " + rect1.ActualHeight;
    txt2.Text= "Height is set to " + rect1.Height;
    txt3.Text= "MinHeight is set to " + rect1.MinHeight;
    txt4.Text= "MaxHeight is set to " + rect1.MaxHeight;
}
private void changeMaxHeight(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
    Double sz1 = Double.Parse(li.Content.ToString());
    rect1.MaxHeight = sz1;
    rect1.UpdateLayout();
    txt1.Text= "ActualHeight is set to " + rect1.ActualHeight;
    txt2.Text= "Height is set to " + rect1.Height;
    txt3.Text= "MinHeight is set to " + rect1.MinHeight;
    txt4.Text= "MaxHeight is set to " + rect1.MaxHeight;
}
Private Sub changeHeight(ByVal sender As Object, ByVal args As SelectionChangedEventArgs)
    Dim li As ListBoxItem = CType(CType(sender, ListBox).SelectedItem, ListBoxItem)
    Dim sz1 As Double = Double.Parse(li.Content.ToString())
    rect1.Height = sz1
    rect1.UpdateLayout()
    txt1.Text = "ActualHeight is set to " + rect1.ActualHeight.ToString
    txt2.Text = "Height is set to " + rect1.Height.ToString
    txt3.Text = "MinHeight is set to " + rect1.MinHeight.ToString
    txt4.Text = "MaxHeight is set to " + rect1.MaxHeight.ToString
End Sub
Private Sub changeMinHeight(ByVal sender As Object, ByVal args As SelectionChangedEventArgs)

    Dim li As ListBoxItem = CType(CType(sender, ListBox).SelectedItem, ListBoxItem)
    Dim sz1 As Double = Double.Parse(li.Content.ToString())
    rect1.MinHeight = sz1
    rect1.UpdateLayout()
    txt1.Text = "ActualHeight is set to " + rect1.ActualHeight.ToString
    txt2.Text = "Height is set to " + rect1.Height.ToString
    txt3.Text = "MinHeight is set to " + rect1.MinHeight.ToString
    txt4.Text = "MaxHeight is set to " + rect1.MaxHeight.ToString
End Sub
Private Sub changeMaxHeight(ByVal sender As Object, ByVal args As SelectionChangedEventArgs)

    Dim li As ListBoxItem = CType(CType(sender, ListBox).SelectedItem, ListBoxItem)
    Dim sz1 As Double = Double.Parse(li.Content.ToString())
    rect1.MaxHeight = sz1
    rect1.UpdateLayout()
    txt1.Text = "ActualHeight is set to " + rect1.ActualHeight.ToString
    txt2.Text = "Height is set to " + rect1.Height.ToString
    txt3.Text = "MinHeight is set to " + rect1.MinHeight.ToString
    txt4.Text = "MaxHeight is set to " + rect1.MaxHeight.ToString
End Sub

Pour obtenir l’exemple complet, consultez l’exemple de propriétés de hauteur.

Voir aussi