#.net #textbox #label #double #precision
#.net #текстовое поле #метка #double #точность
Вопрос:
Когда наименее значимые значения double отличны от нуля, он отображается с разной точностью в зависимости от того, какой элемент управления его отображает.
В моем случае я попытался использовать текстовое поле и метку. toString, похоже, дает тот же результат, что и текстовое поле. Однако элемент управления Label обеспечивает большую точность.
Вот пример (просто проведите большим пальцем, чтобы увидеть, что я имею в виду):
<Window x:Class="SliderTest.SliderTestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SliderTestWindow" Height="300" Width="300">
<StackPanel>
<Slider Name="slider" TickFrequency="0.1" IsSnapToTickEnabled="True" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0">Value</TextBlock>
<TextBox Grid.Row="0" Grid.Column="1" Text="{Binding ElementName=slider, Path=Value}" />
<TextBlock Grid.Row="1" Grid.Column="0">Value</TextBlock>
<Label Grid.Row="1" Grid.Column="1" Content="{Binding ElementName=slider, Path=Value}" />
</Grid>
</StackPanel>
Почему используется другой способ отображения двойников в каждом элементе управления?
Что я могу сделать, чтобы отображать двойные значения в метке так же, как они отображаются в текстовом поле?
Ответ №1:
Вы можете предоставить строку формата для привязки. Пример использования средства форматирования валюты является:
<TextBox Text="{Binding Path=Double, StringFormat=F3}"/>
<TextBox Text="{Binding Path=Double, StringFormat=Amount: {0:C}}"/>
<TextBox Text="{Binding Path=Double, StringFormat=Amount: {0:C}}"/>
<TextBox>
<TextBox.Text>
<Binding Path="Double" StringFormat="{}{0:C}"/>
</TextBox.Text>
</TextBox>
Источник:
http://blogs.msdn.com/b/llobo/archive/2008/05/19/wpf-3-5-sp1-feature-stringformat.aspx
Справка по формату строки: http://alexonasp.net/samples/stringformatting /