为什么我的 StringFormat 在 WPF 中不起作用

use*_*013 5 c# wpf xaml string-formatting

我在 SO 上看到了一些这样的问题,但没有一个答案对我有用!这是我的删节代码:

<Grid Margin="10,4,2,3">

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="150" />
    </Grid.ColumnDefinitions>

    <Image Name="myImage" />

    <WrapPanel Orientation="Vertical" Grid.Column="1" >
        <Label x:Name="labelDimensions" Content="Image Dimensions" />
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="3*" />
                <ColumnDefinition Width="1*" />
                <ColumnDefinition Width="3*" />
            </Grid.ColumnDefinitions>

            <Label Grid.Column="0" 
                   x:Name="imageWidth" 
                   Content="{Binding Path=ActualWidth, 
                             ElementName=myImage, 
                             StringFormat={}{0:1234.5}}" />
            <Label Grid.Column="1" x:Name="label3" Content=" x " />
            <Label Grid.Column="2" 
                   x:Name="imageHeight" 
                   Content="{Binding Path=ActualHeight, 
                             ElementName=myImage, 
                             StringFormat={}{0:1234.5}}" />
        </Grid>
    </WrapPanel>

</Grid>
Run Code Online (Sandbox Code Playgroud)

我期待在“图像尺寸”标签下方看到“641.3 x 480.0”之类的东西,但无论我做什么,它都会出现“641.30000000 x 480”之类的东西。

我有 {0:1234.5} 和 {0:#,#.#} 这样的格式,但下界没有任何效果。我也试过 ConentStringFormat 作为建议的一个 SO 答案,但它甚至没有编译。

任何建议将不胜感激。

Cod*_*shi 5

使用ContentStringFormat来代替。

StringFormat仅在绑定到类型的属性时使用String。正如您在此处看到的那样,的Content属性属于Labelobject 类型,因此不起作用。StringFormat