Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Beispiel
In diesem Beispiel werden visuell die Unterschiede beim Renderingverhalten zwischen den vier breitenbezogenen Eigenschaften in Windows Presentation Foundation (WPF) veranschaulicht.
Die FrameworkElement Klasse macht vier Eigenschaften verfügbar, die die Breitenmerkmale eines Elements beschreiben. Diese vier Eigenschaften können in Konflikt stehen, und wenn ja, wird der Wert, der Vorrang hat, wie folgt bestimmt: Der MinWidth Wert hat Vorrang vor dem MaxWidth Wert, was wiederum Vorrang vor dem Width Wert hat. Eine vierte Eigenschaft ist ActualWidthschreibgeschützt und meldet die tatsächliche Breite, wie sie durch Interaktionen mit dem Layoutprozess bestimmt wird.
Die folgenden XAML-Beispiele (Extensible Application Markup Language) zeichnen ein Rectangle Element (rect1
) als untergeordnetes Element von Canvas. Sie können die Breiteneigenschaften eines Rectangle ändern, indem Sie eine Reihe von ListBox-Elementen verwenden, die die Eigenschaftswerte von MinWidth, MaxWidth und Width darstellen. Auf diese Weise wird die Rangfolge jeder Eigenschaft visuell angezeigt.
<Canvas Height="200" MinWidth="200" Background="#b0c4de" VerticalAlignment="Top" HorizontalAlignment="Center" Name="myCanvas">
<Rectangle HorizontalAlignment="Center" Canvas.Top="50" Canvas.Left="50" Name="rect1" Fill="#4682b4" Width="100" Height="100"/>
</Canvas>
<TextBlock Grid.Row="1" Grid.Column="0" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle Width:</TextBlock>
<ListBox Grid.Column="1" Grid.Row="1" Margin="10,0,0,0" Width="50" Height="50" SelectionChanged="changeWidth">
<ListBoxItem>25</ListBoxItem>
<ListBoxItem>50</ListBoxItem>
<ListBoxItem>75</ListBoxItem>
<ListBoxItem>100</ListBoxItem>
<ListBoxItem>125</ListBoxItem>
<ListBoxItem>150</ListBoxItem>
<ListBoxItem>175</ListBoxItem>
<ListBoxItem>200</ListBoxItem>
<ListBoxItem>225</ListBoxItem>
<ListBoxItem>250</ListBoxItem>
</ListBox>
<TextBlock Grid.Row="1" Grid.Column="2" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle MinWidth:</TextBlock>
<ListBox Grid.Column="3" Grid.Row="1" Margin="10,0,0,0" Width="50" Height="50" SelectionChanged="changeMinWidth">
<ListBoxItem>25</ListBoxItem>
<ListBoxItem>50</ListBoxItem>
<ListBoxItem>75</ListBoxItem>
<ListBoxItem>100</ListBoxItem>
<ListBoxItem>125</ListBoxItem>
<ListBoxItem>150</ListBoxItem>
<ListBoxItem>175</ListBoxItem>
<ListBoxItem>200</ListBoxItem>
<ListBoxItem>225</ListBoxItem>
<ListBoxItem>250</ListBoxItem>
</ListBox>
<TextBlock Grid.Row="1" Grid.Column="4" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle MaxWidth:</TextBlock>
<ListBox Grid.Column="5" Grid.Row="1" Margin="10,0,0,0" Width="50" Height="50" SelectionChanged="changeMaxWidth">
<ListBoxItem>25</ListBoxItem>
<ListBoxItem>50</ListBoxItem>
<ListBoxItem>75</ListBoxItem>
<ListBoxItem>100</ListBoxItem>
<ListBoxItem>125</ListBoxItem>
<ListBoxItem>150</ListBoxItem>
<ListBoxItem>175</ListBoxItem>
<ListBoxItem>200</ListBoxItem>
<ListBoxItem>225</ListBoxItem>
<ListBoxItem>250</ListBoxItem>
</ListBox>
Die folgenden CodeBehind-Beispiele behandeln die Ereignisse, die das SelectionChanged Ereignis auslöst. Jede benutzerdefinierte Methode verwendet die Eingabe aus dem ListBox, analysiert den Wert als a Doubleund wendet den Wert auf die angegebene breitebezogene Eigenschaft an. Die Breitewerte werden auch in eine Zeichenfolge konvertiert und in verschiedene TextBlock Elemente geschrieben (Definition dieser Elemente wird im ausgewählten XAML nicht angezeigt).
private void changeWidth(object sender, SelectionChangedEventArgs args)
{
ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
Double sz1 = Double.Parse(li.Content.ToString());
rect1.Width = sz1;
rect1.UpdateLayout();
txt1.Text = "ActualWidth is set to " + rect1.ActualWidth;
txt2.Text = "Width is set to " + rect1.Width;
txt3.Text = "MinWidth is set to " + rect1.MinWidth;
txt4.Text = "MaxWidth is set to " + rect1.MaxWidth;
}
private void changeMinWidth(object sender, SelectionChangedEventArgs args)
{
ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
Double sz1 = Double.Parse(li.Content.ToString());
rect1.MinWidth = sz1;
rect1.UpdateLayout();
txt1.Text = "ActualWidth is set to " + rect1.ActualWidth;
txt2.Text = "Width is set to " + rect1.Width;
txt3.Text = "MinWidth is set to " + rect1.MinWidth;
txt4.Text = "MaxWidth is set to " + rect1.MaxWidth;
}
private void changeMaxWidth(object sender, SelectionChangedEventArgs args)
{
ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
Double sz1 = Double.Parse(li.Content.ToString());
rect1.MaxWidth = sz1;
rect1.UpdateLayout();
txt1.Text = "ActualWidth is set to " + rect1.ActualWidth;
txt2.Text = "Width is set to " + rect1.Width;
txt3.Text = "MinWidth is set to " + rect1.MinWidth;
txt4.Text = "MaxWidth is set to " + rect1.MaxWidth;
}
Private Sub changeWidth(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.Width = sz1
rect1.UpdateLayout()
txt1.Text = "ActualWidth is set to " + rect1.ActualWidth.ToString
txt2.Text = "Width is set to " + rect1.Width.ToString
txt3.Text = "MinWidth is set to " + rect1.MinWidth.ToString
txt4.Text = "MaxWidth is set to " + rect1.MaxWidth.ToString
End Sub
Private Sub changeMinWidth(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.MinWidth = sz1
rect1.UpdateLayout()
txt1.Text = "ActualWidth is set to " + rect1.ActualWidth.ToString
txt2.Text = "Width is set to " + rect1.Width.ToString
txt3.Text = "MinWidth is set to " + rect1.MinWidth.ToString
txt4.Text = "MaxWidth is set to " + rect1.MaxWidth.ToString
End Sub
Private Sub changeMaxWidth(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.MaxWidth = sz1
rect1.UpdateLayout()
txt1.Text = "ActualWidth is set to " + rect1.ActualWidth.ToString
txt2.Text = "Width is set to " + rect1.Width.ToString
txt3.Text = "MinWidth is set to " + rect1.MinWidth.ToString
txt4.Text = "MaxWidth is set to " + rect1.MaxWidth.ToString
End Sub
Das vollständige Beispiel finden Sie unter "Width Properties Comparison Sample".
Siehe auch
.NET Desktop feedback