WPF状态栏,拉伸文本块以占用尽可能多的空间

Pit*_*k76 6 wpf xaml statusbar

我用3个TextBlocks创建了我自己的简单statusbarcontrol.现在我希望第一个Textblock占用尽可能多的空间.我似乎没有完成..现在它只需要显示文本所需的空间.

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>
Run Code Online (Sandbox Code Playgroud)

我的StatusBar

Eya*_*l H 8

这很简单:你设置StatusBarItem Horizo​​ntalAlignment ="Left"时它应该是"strech",对于Horizo​​ntalContentAlignment也是如此.还建议在边界上设置margin = 0.这就是我所做的,所以它对我有用:

<StatusBarItem HorizontalAlignment="Stretch"
               HorizontalContentAlignment="Stretch">
    <Border BorderThickness="1"
            BorderBrush="Black"
            Margin="0"
            Padding="5 0 5 0"
            Background="White">
        <TextBlock Text="{Binding Message, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                   Foreground="{Binding TextColorMessage}"
                   Background="White"/>
    </Border>
</StatusBarItem>
Run Code Online (Sandbox Code Playgroud)

如果这有用,请标记为答案

  • "如果这有用,请标记为答案",无需说明.OP已经知道了. (2认同)

Flo*_* Gl 5

尝试将StatusBarItem的HorizontalAlignmentHorizontalContentAlignmentStretch.