我在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>
我希望在“图像维度”下面看到&#39;标签,类似&#34; 641.3 x 480.0&#34;但无论我做什么,它都会出现像&#34; 641.30000000 x 480&#34;。
我的格式如{0:1234.5}和{0:#,#。#}但是nether有任何影响。我也试过ConentStringFormat作为一个建议的答案,但是甚至没有编译。
非常感谢任何建议。
答案 0 :(得分:4)
改为使用ContentStringFormat
。
StringFormat
仅在绑定到String
类型的属性时使用。 Content
的{{1}}属性属于对象类型,因为您可以看到here,因此Label
将无效。
答案 1 :(得分:1)
尝试提供StringFormat={}{0:F1}
:
<Label Grid.Column="0"
x:Name="imageWidth"
Content="{Binding Path=ActualWidth,
ElementName=myImage,
StringFormat={}{0:F1}" />
<Label Grid.Column="1" x:Name="label3" Content=" x " />
<Label Grid.Column="2"
x:Name="imageHeight"
Content="{Binding Path=ActualHeight,
ElementName=myImage,
StringFormat={}{0:F1}" />