WPF:如何对齐不同大小的2个标签

时间:2015-06-24 14:43:29

标签: wpf alignment label

我有简单的Grid,带有2个标签,其中一个从Slider Value获取其值(0-100),我希望这2个labels显示Slider Value以这种格式:

x值 - 该值需要具有不同的大小,并且比“x”小得多。 char,所以这是我的开始职位:

enter image description here

虽然Value改变了事情变得丑陋:

enter image description here

我的代码:

<Grid Margin="857,112,87,383" >
    <Label Content="{Binding ElementName=knobSlider, Path=Value, UpdateSourceTrigger=PropertyChanged}"
           Foreground="#FFB2B2B2" VerticalAlignment="Center"  HorizontalAlignment="Center"
       FontFamily="Buxton Sketch"  FontSize="40" Grid.Column="1" Padding="0,0,0,0"/>
    <Label Content="x" FontSize="20" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Column="1" Foreground="#FFB2B2B2" Padding="0,20,0,0"/>
</Grid>

知道怎么解决吗?

顺便说一句:我希望我的价值在点之后只显示1位小数。

1 个答案:

答案 0 :(得分:0)

您可以向Label添加字符串格式,以便您可以控制所需的数字。

例如:

<Label Content="{Binding ElementName=knobSlider, Path=Value, UpdateSourceTrigger=PropertyChanged}" ContentStringFormat="N1" />

另一种方法是将字符串格式直接添加到绑定中。这也有效。就像那样:

<Label Content="{Binding ElementName=knobSlider, Path=Value, UpdateSourceTrigger=PropertyChanged, StringFormat=N2}" />

对于您的第二个问题,您的网格设计就是问题所在。 Grid允许您创建列和行。利用它!像这样:

    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
      </Grid.ColumnDefinitions>
      <Label Grid.Column="0" Content="x" Padding="0,20,0,0" />
      <Label Grid.Column="1" Content="{Binding ElementName=knobSlider, Path=Value, UpdateSourceTrigger=PropertyChanged}" />
    </Grid> 

现在两个标签都在各自的列中,不能重叠。