WPF Statusbar, stretch textblock zu nehmen so viel Platz wie möglich
Ich meine eigene einfache statusbarcontrol mit 3 TextBlocks. Nun möchte ich, dass der erste Textblock nimmt so viel Raum zur Verfügung hat. Dass ich nicht scheinen, um zu erhalten getan.. Jetzt dauert es nur der Raum benötigt, um den text anzuzeigen.
XAML:
<StatusBar Background="{StaticResource GradientBrush}">
<StatusBar.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</StatusBar.ItemsPanel>
<StatusBarItem HorizontalAlignment="Left"
HorizontalContentAlignment="Right">
<Border BorderThickness="1"
BorderBrush="Black"
Padding="5 0 5 0"
Background="White">
<TextBlock Text="{Binding Message, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Foreground="{Binding TextColorMessage}"
Background="White"
/>
</Border>
</StatusBarItem>
<Separator Grid.Column="1" />
<StatusBarItem Grid.Column="2"
HorizontalAlignment="Right">
<TextBlock Text="{Binding Path=DatabaseName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</StatusBarItem>
<Separator Grid.Column="3" />
<StatusBarItem Grid.Column="4"
HorizontalAlignment="Right">
<TextBlock Text="{Binding Path=ComputerName}" />
</StatusBarItem>
InformationsquelleAutor PitAttack76 | 2012-12-14
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, das ist ziemlich straight-forward:
Sie hatte die StatusBarItem-HorizontalAlignment="Left" sein, wenn es "Stretch", das gleiche gilt für die Eigenschaften "horizontalcontentalignment".
Würde auch vorschlagen, Einstellung margin=0 auf der Grenze.
dies ist, was ich Tat, so funktioniert es für mich:
wenn dies ist hilfreich, markieren Sie bitte als Antwort
Versuchen Sie, die StatusBarItem ist
HorizontalAlignment
undHorizontalContentAlignment
zuStretch
.Legen Sie die StatusBarItem die Eigenschaften "horizontalcontentalignment" zu Dehnen und den TextBlock an die TextAlignment-Eigenschaft auf Rechts. (Diese zweite Einstellung wird nur benötigt für die erste StatusBarItem-wie es scheint, dass Sie versuchen, richten Sie den text auf der rechten Seite ist.)
StatusBar hat nur eine HorizontalAlignment=Recht Element zu bewirken, so erhalten Sie nur das Letzte Element im wollte Ort. Sie können statusBar ist FlowDirection="RightToLeft" und " Element hinzufügen in umgekehrter Reihenfolge. Details: rechts platzierte Elemente müssen nicht StatusBarItem umgeben, aber die linke braucht man, um gestreckt. Folgenden code: